Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Implementazione Classe template
Forum - C/C++ - Implementazione Classe template

Avatar
Giarados (Ex-Member)
Pro


Messaggi: 69
Iscritto: 25/07/2010

Segnala al moderatore
Postato alle 20:37
Sabato, 05/03/2011
Ciao a tutti!

Definisco una classe e la implemento nello stesso header:
Codice sorgente - presumibilmente C++

  1. #ifndef _A_
  2. #define _A_
  3.  
  4. template <class C>
  5. class A
  6. {
  7. public:
  8.         A(const C &data)
  9.         {
  10.                 this->data=data;
  11.         }
  12.  
  13. private:
  14.         C data;
  15. }
  16. #endif



Fino a qui tutto ok.

Volendo però scindere il codice sopra in file di intestazione e file di implementazione mi dà il seguente errore:
Codice sorgente - presumibilmente C/C++

  1. previous declaration of ‘template<class C> class A’



"ché perder tempo a chi più sa più spiace" (Purgatorio, Canto III - v.78)
PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 21:47
Sabato, 05/03/2011
non puoi scindere le due cose. Le classi template devono avere la loro stessa implementazione nel file nel quale vengono dichiarate.


"There's no point in being exact about something if you don't even know what you're talking about."

JOHN VON NEUMANN


Siamo italiani NO??
Allora scriviamo in ITALIANO!!!!
PM Quote
Avatar
carlduke (Member)
Pro


Messaggi: 153
Iscritto: 29/01/2011

Segnala al moderatore
Postato alle 11:11
Domenica, 06/03/2011
come disse TheKaneB la parte che riguarda i template nei compilatori C++ è la piu cessa :rotfl:
Devi implementare tutto nello stesso header :pat:


Il mio canale: http://www.youtube.com/user/MrDukeCarl

tecnologia e programmazione!
PM Quote