|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
[C++]Overloading o template
Secondo voi per funzioni che accettano + tipi e meglio il classico overloading delle funzioni offerto dal C++ o il + recente metodo a template???
In pratica, è meglio: Codice:
int stamp(int &, int&); double stamp(double &, &); char stamp(char &, char &); Codice:
template<class T>
void stamp(T & a, T & b)
{
cout <<"a = " << a <<endl;
cout <<"b = " << b <<endl;
}
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Feb 2003
Città: fra casa e lavoro
Messaggi: 1061
|
i template li ho usati poco, ad esempio per definire vari metodi di lettura e di controllo per delle strutture dati semplici (long, int, double) senza dover così fare l'override a mano delle singole funzioni
se devi semplicemente fare due funzioni con parametri diversi, è inutile impelagarsi con cose complesse che, in questo caso, non porterebbero benefici |
|
|
|
|
|
#3 |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
quindi tu dici di usare i template per cose + complesse di funz richiedenti 2 tipi?
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Feb 2003
Città: fra casa e lavoro
Messaggi: 1061
|
dipende dalle funzioni... se sono lunge e complesse allora un template è comodo, ma se è roba da una riga (tipo una formula), secondo me il gioco non vale la candela
EDIT: anche perchè spesso mi trovo a fare i conti con codice già scritto che fa ampio uso di template e std per generalizzare al massimo, e ti assicuro che se non son ben commentate, si fa fatica a capire tutti i giri.... (in attesa di un debugger che mi faccia vedere cosa succede dentro le std...) |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Feb 2003
Città: GE
Messaggi: 397
|
Secondo me sono parenti stretti (pensa alla specializzazione di un template) la domanda forse sarebbe se scegliere tra template e gerarchia di classi ... la risp. secondo me è dipende!
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Dipende...dal caso...
Quando sappiamo a priori i tipi di dati su cui devono operare le funzioni il template è inutile (ed in alcuni casi potrebbe anche portare a conseguenze imprevedibili)... Quando vogliamo invece fare un funzione (o una classe) universale...riutilizzabile con qualsiasi tipo (sempre che siano definiti gli operatori necessari, nel caso dell'esempio l'operatore << |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Kleidemos: la tua funzione non è corretta...non ritorni niente
|
|
|
|
|
|
#8 | |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
Quote:
|
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:47.


















