Добрый день.
Столкнулся с проблемой
В чем может быть проблема ?
Есть класс
template <class TYPE>
class CSTLClass {
public:
CSTLClass(void);
~CSTLClass(void);
};
template <class TYPE>
CSTLClass<TYPE>::CSTLClass() {
}
template <class TYPE>
CSTLClass<TYPE>::~CSTLClass(void){
}
объявляю его в main()
int _tmain(int argc, _TCHAR* argv[]){
CSTLClass<int> iSTLClass;
return 0;
}
при компиляции в VC++ 2008 выдает следующую ошибку:
Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall CSTLClass<int>::~CSTLClass<int>(void)" (??1?$CSTLClass@H@@QAE@XZ) в функции _wmain STL.obj
В чем может быть проблема? и как ее решить?
Здравствуйте, Niten, Вы писали:
N>Добрый день.
N>Столкнулся с проблемой
N>В чем может быть проблема ?
N>Есть класс
N>
N>template <class TYPE>
N>class CSTLClass {
N>public:
N> CSTLClass(void);
N> ~CSTLClass(void);
N>};
N>template <class TYPE>
N>CSTLClass<TYPE>::CSTLClass() {
N>}
N>template <class TYPE>
N>CSTLClass<TYPE>::~CSTLClass(void){
N>}
N>
Может так?
template <class TYPE>
class CSTLClass {
public:
CSTLClass(void){};
~CSTLClass(void){};
};
N>объявляю его в main()
N>
N>int _tmain(int argc, _TCHAR* argv[]){
N> CSTLClass<int> iSTLClass;
N> return 0;
N>}
N>
N>при компиляции в VC++ 2008 выдает следующую ошибку:
N>Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall CSTLClass<int>::~CSTLClass<int>(void)" (??1?$CSTLClass@H@@QAE@XZ) в функции _wmain STL.obj
N>В чем может быть проблема? и как ее решить?
Здравствуйте, Niten, Вы писали:
N>Добрый день.
N>Столкнулся с проблемой
N>В чем может быть проблема ?
N>Есть класс
N>
N>template <class TYPE>
N>class CSTLClass {
N>public:
N> CSTLClass(void);
N> ~CSTLClass(void);
N>};
N>template <class TYPE>
N>CSTLClass<TYPE>::CSTLClass() {
N>}
N>template <class TYPE>
N>CSTLClass<TYPE>::~CSTLClass(void){
N>}
N>
N>объявляю его в main()
N>
N>int _tmain(int argc, _TCHAR* argv[]){
N> CSTLClass<int> iSTLClass;
N> return 0;
N>}
N>
N>при компиляции в VC++ 2008 выдает следующую ошибку:
N>Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall CSTLClass<int>::~CSTLClass<int>(void)" (??1?$CSTLClass@H@@QAE@XZ) в функции _wmain STL.obj
N>В чем может быть проблема? и как ее решить?
Попробуйте сделать реализацию в заголовочном файле в объявлении:
template <class TYPE>
class CSTLClass
{
public:
CSTLClass(void)
{
};
~CSTLClass(void)
{
}
};
Здравствуйте, pavel.yurchenko, Вы писали:
PY>Здравствуйте, Niten, Вы писали:
N>>Добрый день.
N>>Столкнулся с проблемой
N>>В чем может быть проблема ?
N>>Есть класс
N>>
N>>template <class TYPE>
N>>class CSTLClass {
N>>public:
N>> CSTLClass(void);
N>> ~CSTLClass(void);
N>>};
N>>template <class TYPE>
N>>CSTLClass<TYPE>::CSTLClass() {
N>>}
N>>template <class TYPE>
N>>CSTLClass<TYPE>::~CSTLClass(void){
N>>}
N>>
N>>объявляю его в main()
N>>
N>>int _tmain(int argc, _TCHAR* argv[]){
N>> CSTLClass<int> iSTLClass;
N>> return 0;
N>>}
N>>
N>>при компиляции в VC++ 2008 выдает следующую ошибку:
N>>Ошибка 1 error LNK2019: ссылка на неразрешенный внешний символ "public: __thiscall CSTLClass<int>::~CSTLClass<int>(void)" (??1?$CSTLClass@H@@QAE@XZ) в функции _wmain STL.obj
N>>В чем может быть проблема? и как ее решить?
PY>Попробуйте сделать реализацию в заголовочном файле в объявлении:
PY>PY>template <class TYPE>
PY>class CSTLClass
PY>{
PY> public:
PY> CSTLClass(void)
PY> {
PY> };
PY> ~CSTLClass(void)
PY> {
PY> }
PY>};
PY>
Спасибо, помогло.