关于模版类的构造、析构函数
.h:
template <class T>
class FileConnect
{
private:
// 禁用复制,拷贝
FileConnect& operator = (const FileConnect&);
FileConnect(const FileConnect&);
public:
FileConncet();
~FileConnect();
}
.cpp:
template <class T>
FileConnect<T> :: FileConncet()
{
}
template <class T>
FileConnect<T> :: ~FileConnect()
{
}
client:
main()
{
// E2247 'FileConnect<AnsiString>::FileConnect(const FileConnect<AnsiString> &)'
// is not accessible
// 编译错误,提示拷贝构造函数无法获取
FileConnect<int> fc;
}
可是我没有调用拷贝构造函数
问题2:
如果不禁用拷贝构造函数(去除 .h 文件中第7行),在编译期没有错误,但在build时会出现连接错误
“ [Linker Error] Unresolved external 'FileConnect<int>::~FileConnect<int>()' referenced from D:\MY OWN PROGRAM\BCB\ACGIPMGR\LOLI\LOLI_MAIN.OBJ”
提示我没有实现析构函数,但是我已经在 .cpp文件中实现了
问这两个问题的原因及解决方法,谢谢