namespace jme { template <class T> class Data { private: T data; int id; public: Data(); Data(T, const int); virtual ~Data(); Data(const Data& other); Data& operator=(const Data& other); const int getId(); const T& getData() { return data; } };
template <class T> jme::Data<T>::Data() {} template <class T> jme::Data<T>::Data(T _data, const int _id) { this->data = _data; this->id = _id; } template <class T> jme::Data<T>::~Data() {} template <class T> jme::Data<T>::Data(const Data& other) { //copy ctor } template <class T> jme::Data<T>& jme::Data<T>::operator=(const Data& rhs) { //if (this == &rhs) return *this; // handle self assignment //assignment operator this->T = rhs.T; //this->id = rhs.id; return *this; } template <class T> const int jme::Data<T>::getId() { return id; } --- int main(){ jme::Data d; std::cout << "Hello world!" << std::endl; return 0; } The above program gives me this error message: -------------- Build: Debug in data --------------- Linking console executable: bin\Debug\list.exe obj\Debug\main.o: In function `main': C:/.../main.cpp:8: undefined reference to `jme::Data<std::string>::Data()' C:/.../main.cpp:10: undefined reference to `jme::Data<std::string>::~Data()' C:/.../main.cpp:10: undefined reference to `jme::Data<std::string>::~Data()' collect2: ld returned 1 exit status Process terminated with status 1 (0 minutes, 0 seconds) 3 errors, 0 warnings What am I doing wrong? _______________________________________________ help-gplusplus mailing list help-gplusplus@gnu.org https://lists.gnu.org/mailman/listinfo/help-gplusplus