【发布时间】:2015-06-17 01:50:33
【问题描述】:
我有一个在 linux 上构建到静态库的项目,然后我想将其包含在单元测试项目和应用程序项目中。
在这个库中,我有类似的东西:
template<class T> class A
{
public:
virtual T doStuff() = 0;
virtual void doOther(T a) = 0;
protected:
A() { ... }
};
class B : public A<int>
{
public:
B() { ... }
virtual int doStuff() { ... }
virtual void doOther(int a) { ... }
};
我收到编译错误:undefined reference to A<int>::A() 在我的库中。
我猜它与模板生成有关,我也可以像这样覆盖虚函数吗?
【问题讨论】:
-
Works for me。请提供重现问题的MCVE。
-
是的,你可以像这样重写虚函数。如果没有,编译器会通知您。
-
@Angew - 我在 cpp 文件中定义了我的班级成员,而不是像这里示例中的头文件。我认为这完全无关紧要,完全忘记基本的东西。
标签: c++ templates inheritance abstract-class