C++之内存泄露
时间:2010-04-22 来源:llovzy
class tree |
下面有个人回答的不错,抄录下来,以作备忘
这段代码有内存泄露的危险,因为C++标准明确指出,当子类对象经由基类指针删除时,倘若基类带有一个non-virtual(非虚)析构函数,此时其结果为undefined(未定义).这在C++中最后变为了一个通用的程序设计方法:既对一个有可能做为基类的类,其析构函数最好声明为virtual的,这可以保证在使用多态的情况下,通过基类指针正确删除子类对象. 分析如下: |
动手试试吧
#include <iostream>
输出:
Base Constructor! |
class base{ 输出:
Base Constructor! |