各位老虾:
小弟的程序是这样
a.h
template <class T>
class A
{
public:
A();
~A();
};
a.cpp
#include "a.h"
template <class T>
A<T>::A()
{
;
}
A<T>::~A()
{
;
}
test.cpp
#include "a.h"
main()
{
A<int> a;
return 1;
}
然后,直接用vc打开test.cpp,按F7,系统自动生成工程。
但是报错,
error LNK2001:unresolved external symbol "public:__this call A<int>::A<int> (void)" (??0?$A@H@@QAE@XZ)
error LNK2001:unresolved external symbol "public:__this call A<int>::~A<int> (void)" (??0?$A@H@@QAE@XZ)
debug/test.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe
这是怎么回事啊?请各位帮忙!
小弟的程序是这样
a.h
template <class T>
class A
{
public:
A();
~A();
};
a.cpp
#include "a.h"
template <class T>
A<T>::A()
{
;
}
A<T>::~A()
{
;
}
test.cpp
#include "a.h"
main()
{
A<int> a;
return 1;
}
然后,直接用vc打开test.cpp,按F7,系统自动生成工程。
但是报错,
error LNK2001:unresolved external symbol "public:__this call A<int>::A<int> (void)" (??0?$A@H@@QAE@XZ)
error LNK2001:unresolved external symbol "public:__this call A<int>::~A<int> (void)" (??0?$A@H@@QAE@XZ)
debug/test.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe
这是怎么回事啊?请各位帮忙!
解决方案 »
- 软件性能调试
- recvfrom 这个函数总是失败,这是为什么呢?
- opengl用纹理贴图贴出来的图是一个色块,求大侠指点
- winsock.h中的socket函数用法
- 为DentistryDoctor的MVP称号也不能顶上缺失的文凭散分
- 我用了一个Custom Control,并用从CWnd派生了一个类与它关连,如何让它响应类中的事件?? ?
- 喝可乐,呵呵
- str.compare不是CString的成员函数???
- 请大家指教:) 大家一般怎样对付error LNK 2005阿? 就是那个重定义的错误。
- 为什么WaitForSingleObject不返回啊,我的线程明明已经结束了啊????
- 怎么在excel里面嵌入菜单呢?就像office多了个菜单一样
- datagrid类的基础问题
#include "a.h"
template <class T>
A<T>::A()
{
} template <class T>
A<T>::~A()
{
}
这样做的原因是模板的一个特性决定的,因为模板中的operation在没有被别人使用前是不被编译的。因此,你可以在模板中写一个不符合语法的operation,只要你没有使用这个operation,编译器永远不会报错。
所以,如果.h没有实现体,肯定报错,也就是说,并不支持.h和.cpp分开。