第五章:析构函数
1.如果类没有定义析构函数,那么只有在class内含的成员变量或自己的基类含有析构函数的情况下,才需要析构函数。(此时编译器会自动合成也不会被调用)。
2.编译器扩展析构函数的顺序
①析构函数的本体被执行
②如果类拥有含有析构函数的类成员对象,则他们会以声明的相反顺序被调用。
③如果类含有一个vptr,现在被重新设定指向适当的基类的虚函数表。
④如果类有任何直接的非虚函数基类拥有析构函数,他们会以其声明顺序相反的顺序被调用。
⑤如果类有任何虚基类拥有析构函数,而且这个类是最底层(most derived)的派生类,则会按照原来的构造顺序的相反顺序调用虚基类的析构函数。

浙公网安备 33010602011771号