Advertisement

C++ Primer 第15章面向对象程序设计第15.7节构造函数与复制控制练习题

阅读量:

15.7 构造函数和拷贝控制

15.7.1 虚析构函数

在继承体系中,在引用绑定派生对象时(...),我们需要通过delete关键字来释放该引用所关联的对象资源(...)。然而,在这种情况下(...),该引用可能指向的是一个子类对象实例(...)。因此,在编译器层面(...),我们必须明确告知编译器:为了确保正确调用子类构造函数...),必须将基类构造函数声明为纯虚函数(pure virtual function)。(英文部分保持不变)

当基类的析构函数被声明为虚构造函数时,则所有子类(不论是编译器自动生成或者开发者手动指定)都会默认解析构造。

注意,在我们的代码中明确声明析构函数后,默认情况下编译器将不再为移动操作进行合成。

练习
15.24

在继承体系中定义的类必须实现虚析构函数,在这种情况下与普通的析构函数不同之处在于,虚析构函数同样负责回收本类对象所管理的动态内存。

15.7.2 合成拷贝控制与继承

继承类生成的对象复制构造、对象复制赋值以及析构函数在执行过程中会调用其父类相应的操作步骤

在涉及复制和隐式析构函数的情况下(这些都位于派生类的初始化列表中),它们都会先使用基类提供的初始化操作。

而析构函数则是先调用派生类的析构,再调用基类的析构。

当基类中

全部评论 (0)

还没有任何评论哟~