Oppure

Loading
05/03/11 19:37
Giarados
Ciao a tutti!

Definisco una classe e la implemento nello stesso header:
#ifndef _A_
#define _A_

template <class C>
class A
{
public:
	A(const C &data)
	{
		this->data=data;
	}

private:
	C data;
}
#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:
previous declaration of ‘template<class C> class A’
aaa
05/03/11 20:47
lorenzo
non puoi scindere le due cose. Le classi template devono avere la loro stessa implementazione nel file nel quale vengono dichiarate.
aaa
06/03/11 10:11
carlduke
come disse TheKaneB la parte che riguarda i template nei compilatori C++ è la piu cessa :rotfl:
Devi implementare tutto nello stesso header :pat:
aaa