提问人:elections 12 提问时间:1/22/2021 最后编辑:Pat. ANDRIAelections 12 更新时间:1/23/2021 访问量:50
C++ 无法使用模板参数 [duplicate] 创建模板构造函数
C++ unable to create template constructor with template parameter [duplicate]
问:
person<worker> people (w);
我有类和类,我想从类中创建人物对象。person
worker
person
//person.cpp
template <class T>
person<T>::~person()
{
//dtor
}
//person.h
template <class T>
class person
{
public:
person();
person(T a);
virtual ~person();
};
我得到
undefined reference to `person<worker>::person(worker).
我做错了什么?
答:
0赞
Pat. ANDRIA
1/22/2021
#1
未定义接受 a 的构造函数。您只有标题,而没有定义。这会导致错误worker
我在类声明中添加了定义,如下所示:
person(T a) { x = a; };
这是一个编译和执行的最小代码(根据你所做的):
#include <iostream>
class worker
{
private:
int a;
public:
worker(){}
~worker() {}
};
//person.h
template <class T>
class person
{
public:
person();
person(T a) { x = a; };
virtual ~person();
private:
T x;
};
//person.cpp
template <class T>
person<T>::~person()
{
//dtor
}
int main()
{
worker w;
person<worker> people(w);
}
下一个:为什么模板只能在头文件中实现?
评论
person(T a);