虚析构函数与非虚析构函数问题!
2012-07-20 11:54
204 查看
class A{ public: virtual ~A() { cout<<"~A()"<<endl; } }; class B:public A{ public: virtual ~B() { cout<<"~B()"<<endl; } }; int main() { A*a = new B(); delete a; return 0; } |
class A{ public: ~A() { cout<<"~A()"<<endl; } }; class B:public A{ public: ~B() { cout<<"~B()"<<endl; } }; int main() { A*a = new B(); delete a; return 0; } |
由于a是个基类A类型的指针,且虚函数表中没有对应的析构函数,所以其析构时的执行是在编译时确定的,即只执行基类的析构函数。[另外请记住,如果调用子类的析构函数之后,肯定会调用父类的析构函数]
相关文章推荐
- 关于虚析构函数的一个问题
- 虚析构函数问题:为什么要将基类的的析构函数设成虚的?
- 虚析构函数-父子类释放内存泄漏问题
- 虚析构函数问题:为什么要将基类的的析构函数设成虚的?
- 对于基类添加虚析构函数问题
- 虚析构函数问题:为什么要将基类的的析构函数设成虚的?
- 虚析构函数问题:为什么要将基类的的析构函数设成虚的?
- 对于基类添加虚析构函数问题
- 虚析构函数问题:为什么要将基类的的析构函数设成虚的?
- C++中基类的虚析构函数问题
- 工作问题积累(二十五)虚析构函数的是怎样的实现原理?_BLOCK_TYPE_IS_VALID
- [转]虚析构函数问题:为什么要将基类的的析构函数设成虚的?
- 虚析构函数的传递性问题
- C++虚析构函数的使用(可能造成内存泄露问题)
- 虚析构函数问题:为什么要将基类的的析构函数设成虚的?
- [TEC-EXAM]有关虚析构函数的问题
- 换零钱问题迭代解法
- VS2013诡异问题,虚方法、泛型,通通躺枪
- linux下内核编译的一些小问题
- Android位图颜色模式的问题