iam*_*ind 19 c++ destructor pure-virtual language-lawyer
当编译器具有纯析构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'
};
Run Code Online (Sandbox Code Playgroud)
有趣的是那个; 编译器而不是强制Base
定义析构函数体.这是理解的.(演示供参考)
那么在课堂上拥有纯粹的析构函数的目的是什么?(它只是禁止创建对象吗?)virtual
Base
Base
Kon*_*lph 27
有时,抽象基类没有虚拟方法(通常称为"mixin")或根本没有方法(通常称为"类型标记").
要强制将这些类用作抽象基类,至少有一个方法需要是纯虚拟的 - 但这些类没有虚拟方法!所以我们使析构函数变为纯虚拟.
归档时间: |
|
查看次数: |
3069 次 |
最近记录: |