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

二、加入虚函数:
深度探索c++对象模型(5):ctor、dtor、copy
由于构造函数需要初始化vptr,因此ctor、copy是nontrivial,dtor是trivial
深度探索c++对象模型(5):ctor、dtor、copy
在一个类B中使用了其他类A,并且该类有ctor、dtor、copy,则B的ctor、dtor、copy都是nontrivial。

三、虚拟继承:
深度探索c++对象模型(5):ctor、dtor、copy
由最底层的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。

相关文章:

  • 2021-05-08
  • 2021-12-23
  • 2021-06-13
  • 2021-12-24
  • 2022-12-23
  • 2021-08-13
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-09-20
  • 2021-09-19
  • 2021-11-04
  • 2021-12-31
相关资源
相似解决方案