虚析构函数、虚函数结合考题变种
虚析构函数、虚函数结合考题变种
1.[Effective C++原则07]:为多态基类声明virtual 析构函数。
[如果不]: 如果不声明为析构函数,可能出现的结果如下:Derived对象的成分没有被销毁,形成资源泄露、在调试上会浪费很长时间。
2.[Effective 原则09]:绝不在构造和析构过程中调用virtual函数。
【原因】:base class的执行更早于derived class的构造函数,当base class的构造函数执行的时候derived class的成员变量尚未初始化。
【如果不】:执行的结果不会动态联编,依然执行其所在层的虚函数。
【示例如下】:
3.综合1,2的笔试题如下: