kia.celever
یک شنبه 12 تیر 1390, 15:58 عصر
سلام من میخواستم یه template class بنویسم که تو خودش یه نوع داده نامشخص رو نگه دارم اما کد زیر به من link error میده. کسی میتونه بگه اشکال کارم کجاست؟
در ضمن از Ubuntu 10.04 و کامپایلر g++ استفاده میکنم.
MyClass.h
#ifndef _MYCLASS_H
#define _MYCLASS_H
template<class T> class MyClass {
T value;
public:
MyClass(T v);
~MyClass();
};
#endif // _MYCLASS_H
MyClass.cpp
#include "MyClass.h"
template<class T> MyClass<T>::MyClass(T v) {
value = v;
}
template<class T> MyClass<T>::~MyClass() {
}
main.cpp
#include "MyClass.h"
int main() {
MyClass<int> test(10);
return 0;
}
Make output
g++ main.cpp -c
g++ MyClass.cpp -c
g++ main.o MyClass.o -o Out
main.o: In function `main':
main.cpp:(.text+0x1a): undefined reference to `MyClass<int>::MyClass(int)'
main.cpp:(.text+0x2b): undefined reference to `MyClass<int>::~MyClass()'
collect2: ld returned 1 exit status
make: *** [all] Error 1
در ضمن از Ubuntu 10.04 و کامپایلر g++ استفاده میکنم.
MyClass.h
#ifndef _MYCLASS_H
#define _MYCLASS_H
template<class T> class MyClass {
T value;
public:
MyClass(T v);
~MyClass();
};
#endif // _MYCLASS_H
MyClass.cpp
#include "MyClass.h"
template<class T> MyClass<T>::MyClass(T v) {
value = v;
}
template<class T> MyClass<T>::~MyClass() {
}
main.cpp
#include "MyClass.h"
int main() {
MyClass<int> test(10);
return 0;
}
Make output
g++ main.cpp -c
g++ MyClass.cpp -c
g++ main.o MyClass.o -o Out
main.o: In function `main':
main.cpp:(.text+0x1a): undefined reference to `MyClass<int>::MyClass(int)'
main.cpp:(.text+0x2b): undefined reference to `MyClass<int>::~MyClass()'
collect2: ld returned 1 exit status
make: *** [all] Error 1