不能创建类模板对象

Class Template Object cannot be created

本文关键字:对象 创建 不能      更新时间:2023-10-16

我在我的一个类中使用模板,但由于某种原因,当我创建一个对象时,我得到的错误如下:类模板"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;
}

您必须指定要实例化class template的类型。例如:

  Test<int> object;

考虑如何使用std library中的类模板,如vectors,您必须指定类型,如int,例如vector<int>

对于构造函数定义,它应该可以工作,但是,有一点是必须将声明和定义放在同一个头文件中,否则编译器无法找到定义。(有一些技术可以将声明和定义在不同的文件中分开,比如头文件末尾的"export"answers"#include cpp file")