深度探索c++对象模型(5):ctor、dtor、copy

一、无继承的对象构造:
类中包含的都是POD,则该类的ctor、dtor、copy都是trivial,初始化、拷贝、回收该类型对象,编译器不会产生对应的ctor、dtor、copy。

二、加入虚函数:
在这里插入图片描述
由于构造函数需要初始化vptr,因此ctor、copy是nontrivial,dtor是trivial
在这里插入图片描述
在一个类B中使用了其他类A,并且该类有ctor、dtor、copy,则B的ctor、dtor、copy都是nontrivial。

三、虚拟继承:
在这里插入图片描述
由最底层的class对Point进行初始化

四、vptr初始化:
在base class ctor调用之后进行
1)调用virtual base class 的ctor,以及derived class上一层的ctor
2)初始化vptr
3)初始化列表展开
4)执行程序员代码

五、dtor:
class本身没有定义dtor,并且base class或member有dtor,会合成dtor。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值