无法创建类模板对象

时间:2013-04-09 01:34:09

标签: c++ class templates constructor

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

那也行不通

1 个答案:

答案 0 :(得分:0)

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

  Test<int> object;

考虑如何使用std library中的vectors类模板, 您必须指定int等类型,例如vector<int>。这就是同样的理由。

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