构造 / 析构顺序

构造:先基类后派生类 · 析构:先派生类后基类(逆序)
继承链 Animal ← Dog ← Puppy (派生对象 = 基类子对象 + 派生新增成员) 构造 (constructor) 自顶向下 基类 → 派生类 Animal() 基类子对象 Dog() 中间派生 Puppy() 最派生类 先把“地基”造好,再造上层 析构 (destructor) 自底向上 派生类 → 基类(逆序) ~Animal() 基类子对象 ~Dog() 中间派生 ~Puppy() 最派生类 后构造的先析构,像出栈 构造 基→派 · 析构 派→基(严格逆序)