虚析构 虚函数

一般对于类而言凡是有虚函数就会有虚析构函数,因为有虚函数就可能出现多态现象也就是指向子类的基类指针,那么会delete 指向子类的基类指针也就是要虚析构函数了。

用户delete子类对象的基类指针 虚西沟函数保证:子类的析构会被执行,而子类的析构又会回溯调用基类的析构,那么所有内存都会得到正确的释放,永远可以指向子类的析构, 防止内存泄漏,   在这里有虚析构函数可能没啥好处  ,但至少没有坏处。可以作为约定,一般有虚函数就得有析构,虚析构后面得写个大括号。

多态必须要有虚函数。

对于虚函数一虚则全虚 指的是基类虚函数则子类即便没关键字virtual也是虚函数

虚函数--多态--重写 是运行期才执行是动态联编的


#include<iostream>
using namespace std;
class A
{
public:
virtual ~A(){};
virtual void fA(){};


};
class B
{
public:

virtual void fB(){};


};
class C: public A,public B
{
public:






};


int main()
{
C a;
A* pa = &a;
B* pb = &a;
C* pc = &a;
cout << pa << " " << pb << " " << pc << " "<<endl;
}
//output
//0024FD04 0024FD08 0024FD04
//请按任意键继续. . .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值