我有一个声明如下的类:
class TestFoo {
public:
TestFoo();
virtual void virtualFunction();
void nonVirtualFunction();
};
我尝试以这种方式实现
TestFoo::TestFoo(){}
void TestFoo::nonVirtualFunction(){}
编译时返回错误:
undefined reference to vtable for TestFoo
我试过 :
TestFoo::TestFoo(){}
void TestFoo::nonVirtualFunction(){}
void TestFoo::virtualFunction(){}
编译好这与这些帖子的答案一致:
让我感到困惑的是,我认为声明虚函数的全部意义在于我不需要定义它。在此示例中,我不打算创建任何 TestFoo 实例,而是创建从 TestFoo 继承的(具体)类的实例。但是,我仍然想为 TestFoo 的每个子类定义函数 nonVirtualFunction。
我做错了什么?
谢谢 !