虚析构函数

一、关键点

虚析构函数的必要性(为何需要?哪里需要?)

虚构函数的特性

 

二、虚析构函数的必要性

基类通常应该定义一个虚析构函数(当然不是必须要虚析构函数),这是继承关系对基类拷贝控制最直接的影响

为何需要:这样我们就能动态分配继承体系中的对象,如delete一个指向派生类对象的基类指针时,虚析构函数会确保编译器执行派生类的析构函数。

 

三、特性

1. 定义了虚析构函数,不是必须要定义拷贝和赋值操作

因为我们将析构函数定义为虚函数,此时该虚析构函数的内容常常为空(=default),于是我们显然无需定义拷贝和赋值操作

2. 虚析构函数将阻止合成移动操作

posted @ 2017-11-16 23:03  GGBeng  阅读(280)  评论(0编辑  收藏  举报