什么情况下,类的析构函数应该声明为虚函数?
2012-04-15 15:34
274 查看
首先要明确:
1.每个析构函数(不加 virtual) 只负责清除自己的成员。
2.可能有基类指针,指向的是子类成员的情况,那么当析构一个指向子类的基类指针时,程序就不知道怎么办了。如果不加析构,只会析构掉自己基类的这部分,而子类无法析构造成内存泄漏。
所以要保证运行适当的析构函数,基类中的析构函数必须为虚析构。反正你在写一个类时,将其析构函数写为虚函数总不会有错的。
1.每个析构函数(不加 virtual) 只负责清除自己的成员。
2.可能有基类指针,指向的是子类成员的情况,那么当析构一个指向子类的基类指针时,程序就不知道怎么办了。如果不加析构,只会析构掉自己基类的这部分,而子类无法析构造成内存泄漏。
所以要保证运行适当的析构函数,基类中的析构函数必须为虚析构。反正你在写一个类时,将其析构函数写为虚函数总不会有错的。
相关文章推荐
- 什么情况下,类的析构函数应该声明为虚函数?
- c++(重载、覆盖、隐藏)&&什么情况下,类的析构函数应该声明为虚函数?为什么?
- 什么情况下,类的析构函数应该声明为虚函数
- 什么情况下,类的析构函数应该声明为虚函数?
- 析构函数是否必须为虚函数?什么情况下才应该定义析构函数为虚函数?
- 什么情况下,类的析构函数声明为虚函数
- c++ 什么情况下需要将基类的析构函数声明为虚函数
- 在什么情况下应当声明虚函数
- 析构函数什么情况下要定义为虚函数?
- 什么情况下需要将析构函数定义为虚函数?
- 什么情况下析构函数需要定义为虚函数?
- 析构函数什么情况下要定义为虚函数?
- 析构函数什么情况下要定义为虚函数?
- 为虚函数,什么情况下需要将析构函数定义为虚函数?
- 析构函数什么情况下要定义为虚函数?
- 析构函数什么情况下要定义为虚函数
- 析构函数什么情况下要定义为虚函数?
- 析构函数什么情况下要定义为虚函数?
- 为什么析构函数可以为虚函数,什么情况下需要将析构函数定义为虚函数?
- 什么情况下应当声明虚函数?纯虚函数声明