我在我的一个类中使用模板,但由于某种原因,当我创建一个对象时,我得到的错误如下:类模板“Test”的参数列表丢失。
template <class T>
class Test
{
private:
T variable;
public:
Test(){cout << "CONSTRUCTOR CALLED" << endl;}
};
在main.cpp
中Test object;
编译器显示以下内容:'Test':使用类模板需要模板参数列表。
template <class T>
Test<T>::Test()
{
cout << "CONSTRUCTOR CALLED" << endl;
}
那也行不通
答案 0 :(得分:0)
您必须指定要实例化class template
的类型。
例如:
Test<int> object;
考虑如何使用std library
中的vectors
类模板,
您必须指定int
等类型,例如vector<int>
。这就是同样的理由。
对于构造函数定义,它应该工作,但是,一点是你必须将声明和定义放在同一个头文件中,否则,编译器找不到定义。 (有些技术可以在不同的文件中分隔声明和定义,例如头文件末尾的“export”和“#include cpp file”)