【发布时间】:2018-02-24 02:28:05
【问题描述】:
我有两个类,基类A和派生类B。定义如下:
Class A {
public:
A()
{
ImpleDefinition();
}
~A()=default:
protected:
virtual void ImplDefinition()=0;
}
class B : public A
{
public:
B() : A()
{
}
~B()=default;
private:
void ImplDefinition() override
{
/*Some detailed implementation*/
}
}
所以在编译这段代码时,编译器会报“error LNK2001: unresolved external symbol”错误。从代码本身,我看不出我犯了任何错误。有趣的是,如果我将“ImplDefinition”从纯虚函数更改为虚函数。
void ImplDefinition() {};
然后一切正常。如何解释这种情况?
【问题讨论】:
-
析构函数设置为“default:”是怎么回事?
标签: c++ c++11 pure-virtual