我在我的一个类中使用模板,但由于某种原因,当我创建一个对象时,我得到的错误如下:类模板“Test”的参数列表丢失。
template <class T>
class Test
{
private:
T variable;
public:
Test(){cout << "CONSTRUCTOR CALLED" << endl;}
};
在 main.cpp 中
Test object;
编译器显示以下内容:“测试”:类模板的使用需要模板参数列表。
template <class T>
Test<T>::Test()
{
cout << "CONSTRUCTOR CALLED" << endl;
}
那也没用
最佳答案
您必须指定要实例化的类型 class template
.
例如:
Test<int> object;
想想你如何使用 std library
中的类模板喜欢vectors
,
您必须指定类型,例如 int
,例如vector<int>
.道理是一样的。
对于构造函数定义,它应该可以,但是,有一点是你必须将声明和定义放在同一个头文件中,否则编译器找不到定义。 (有一些技巧可以在不同的文件中将声明和定义分开,例如头文件末尾的“export”和“#include cpp file”)
关于c++ - 无法创建类模板对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15891860/