Scott 在《Effective C++, 3rd Edition, pg.》上说。43 要创建一个抽象类,我们只需要给它一个纯虚析构函数:
class AWOV { // AWOV = "Abstract w/o Virtuals"
public:
virtual ~AWOV() = 0; // declare pure virtual destructor
};
然后,他继续说有一个转折点:我们必须为纯虚析构函数提供一个定义:
AWOV::~AWOW() {} // definition of pure virtual dtor
我的问题是,通过指定= 0
,对于纯虚函数,我们说该函数不能对声明这个纯虚函数的类有任何定义。
为什么在这里为纯虚拟析构函数提供定义(即使它是空的)也可以?