《深度探索C++对象模型》 构造、析构、拷贝语义学 第五章笔记

本章主要介绍在不同的继承体系下,针对类的构造、析构及拷贝操作,编译器为其做了哪些工作。

1.继承体系下的对象构造

  • 我们使用构造函数的初始化成员列表初始化成员时,对于对象会分别调用其拷贝构造函数。
  • 含有虚函数的,编译器在其构造函数中设置虚函数表,这是最好的时机。但可以考虑和初始化成员哪个放前面好?
  • 虚拟继承体系下,对虚基类成员初始化应由最后一层类负责。可以想象,不然呢?交由哪个subobject都不合适。
  • 文中提到,如果在构造函数中,调用了一个虚成员函数,该如何决议?多态?如果不使用多态,该如何做?
2.对象复制语义学

提起拷贝赋值(assignment)函数,就得提bitwise拷贝。对于非用户定义的默认拷贝赋值操作,如果内有成员对象(member object)且该类定义了拷贝赋值函数,合成的默认构造函数会调用该类定义的拷贝赋值函数,为什么呢?为什么不呢?!这其实并不能算是一个问题。可以想象,用户既然定义了一个拷贝赋值函数,可以理解为本来就是为了拒绝使用bitwise拷贝,所以这就是为什么编译器会调用该类定义的拷贝赋值函数。

注:本章内容详细且易理解,记录倒不如直接看书。

参考资料:

深度探索C++对象模型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值