Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. 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’


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.

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:

PM Quote