我在调用我拥有的模板类时遇到问题。 我声明了一个新的类型名称Array,它是一个模板;
在 .hpp 文件中:
template <typename T>
class Array
{
public:
Array();
};
.cpp 文件中:
template <typename T>
Array<T>::Array()
{
//Do something
}
主要:
Array<int> arr;
我收到链接错误:未解析到 ctor 的外部符号。
有什么想法吗?
最佳答案
模板函数,包括成员函数,必须完全写在头文件中。这意味着如果你有一个模板类,它的实现必须完全在一个头文件中。这是因为编译器需要访问整个模板定义(而不仅仅是签名)才能为模板的每个实例化生成代码。
关于C++ 模板,链接错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1353973/