|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2001
Città: Nordest
Messaggi: 217
|
C++ e template
Qual è il vantaggio (se c'è) nell'uso dei templates in C++, rispetto alla programmazione tradizionale (OOP)? Sto leggendo un libro non proprio recente sulla creazione di componenti COM con ATL (Active Template Library), ma credo di non aver capito i concetti di base che stanno dietro a questa libreria! Perchè non usare l'ereditarietà e il polimorfismo, come fa MFC?
__________________
Chi non cerca trova. |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
I template permettono di lavorare virtualmente con qualunque oggetto basta che supporti gli operatori che si usano nell'implementazione della classe o della funzione con il template...
Codice:
#include <iostream>
using namespace std;
template <class T>
void MySwap( T& a, T& b )
{
T c(a);
a = b;
b = c;
}
int main(int argc, char *argv[])
{
int a = 5, b = 10;
cout << a << " " << b << endl;
MySwap<int>(a,b);
cout << a << " " << b << endl;
double aa = 5.22, bb = 10.22;
cout << aa << " " << bb << endl;
MySwap<double>(aa,bb);
cout << aa << " " << bb << endl;
return 0;
}
|
|
|
|
|
|
#3 | |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
Re: C++ e template
Quote:
cionci............rispondi al mio 3d sul libro?? Tnk |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Non lo conosco...
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Feb 2001
Città: Nordest
Messaggi: 217
|
Cionci, nel tuo esempio usi la stessa funzione con due tipi diversi: int e double. Vuol dire che esistono, nel file compilato, due versioni separate della stessa classe? (una per il tipo int e una per il tipo double?). Te lo chiedo perchè mi sembra di aver capito che i template vengono gestiti in fase di precompilazione, giusto?
__________________
Chi non cerca trova. |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Feb 2001
Città: Nordest
Messaggi: 217
|
Re: C++ e template
Quote:
__________________
Chi non cerca trova. |
|
|
|
|
|
|
#7 | |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
Re: C++ e template
Quote:
Leggi qui cmq: http://www.sgi.com/tech/stl/ |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Sì, in pratica nel file compilato c'è sia MySwap<int>(int &, int &
Dal punto di vista della programmazione ci sono notevoli e ovvi vantaggi sulla velocità di scrittura e sulla riutilizzabilità del codice... Ad esempio la classe vector della STL può essere usata virtualmente con qualsiasi altro tipo di dato... Codice:
vector<int> v1;
vector<float> v2;
vector<double> v3;
class c {...};
vector<c> vc;
|
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Oct 2000
Città: Montreal (Canada)
Messaggi: 1309
|
Piccolo tip: tra breve dovrebbero fare la loro comparsa i templates (cosidetti generici) anche in Java e .NET (la versione di Java lascia un po' a desiderare ma ci sono già proposte per migliorarla...)
|
|
|
|
|
|
#10 |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
ho letto sull'ultimo pc professionale l'articolo su questi nel Java e su programazione.it parlano di questo intro in C#..................ma quanto copiano?
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Oct 2000
Città: Montreal (Canada)
Messaggi: 1309
|
Non ho letto niente a riguardo... mi puoi dare il link della pagina di programmazione...
Comunque è vero che copiano.... in un documento della MS citano e dicono espressamente che la loro soluzione è simile (e naturalmente migliore) di quella di due miei prof dell'uni... questa soluzione dei prof è quella attualmente sotto studio dalla sun per una migliore futura implementazione dei generici... quella attuale (GJ dovrebbe uscire con Java 1.5) di Java fa effettivamente schifo... |
|
|
|
|
|
#12 |
|
Bannato
Iscritto dal: Nov 2002
Città: PV
Messaggi: 1210
|
http://www.programmazione.it/index.php?entity=enews&idNews=6144&idArea=1
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:13.



















