子类构造函数调用顺序:先父类,再子类(先建立基础,再大楼) 子类析构函数调用顺序:先子类,再父类(先拆大楼,再拆基础) 为什么析构函数要写成虚函数 因为如果一个父类指针装了一个子类对象,在析构的时候如果不是虚函数,它会调父类的析构函数,这样的话,如果子类有新的成员变量,就会出现内存泄漏的情况,没有被释放。