构造函数执行顺序 调用虚基类构造函数(如有多个则按虚基类声明顺序从左到右)调用基类构造函数(如有多个则按基类声明顺序从左到右)设定虚函数表指针值(virtual table pointer)执行初始化列表、调用成员变量构造函数(按成员变量声明顺序)执行自身构造函数 析构函数执行顺序(与构造函数相反) 执行自身析构函数调用成员变量析构函数(与成员声明顺序相反)调整虚函数表指针值调用基类析构函数(从右到左)调用虚基类析构函数(从右到左)