一、无继承的对象构造:
类中包含的都是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。