当编译器具有纯析构函数时,编译器不会强制Child class
实现析构函数。Base
virtual
struct Base
{
virtual void foo () = 0;
virtual ~Base() = 0;
};
Base::~Base() {} // necessary
struct Child : Base
{
void foo() {}
//ok! no destructor needed to create objects of 'Child'
};
有趣的是;编译器宁愿强制Base
定义一个析构函数体。这是明白的。(演示供参考)
那么在课堂上使用纯析构函数的目的是什么?(仅仅是为了禁止创建对象吗?)virtual
Base
Base