C++将父类的析构函数定义为虚函数,下列正确的是哪个?正确答案: A   
A 释放父类指针时能正确释放子类对象  B释放子类指针时能正确释放父类对象 C这样做是错误的 D以上全错

解析: C++中假设有基类为fa,它的派生类为son,如果有*fa = new son();在delete fa或者释放*fa的时候将只会调用基类的析构函数;如果基类的析构函数为虚函数,在delete fa或者释放*fa的时候会先调用派生类(这里也就是son)的析构函数,再调用基类的析构函数。如果不是virtual,那么撤销fa指针时,将不会调用子类的析构函数,造成了内存泄露。
posted on 2017-03-07 13:00  serser  阅读(224)  评论(0编辑  收藏  举报