virtual关键字的作用

1. 在派生类中重新定义基类的方法


当需要在派生类中重新定义基类的方法时,应在基类方法前使用关键字virtual,而派生类重新定义的方法自动被继承为虚方法,不过可以加上virtual前缀进行限定,以便区分派生类的哪些方法是虚方法。

关键字: 基类; 派生类; 虚方法; 方法重写

注意:使用不使用关键字virtual

如果使用了virtual关键字,程序将根据引用或指针指向的 对 象 类 型 来选择方法,否则使用引用类型或指针类型来选择方法。

2. 为多态基类声明virtual析构函数


为什么要把基类的析构函数设置为虚?

为多态基类声明virtual析构函数。当class不被企图被当作base class时,令其析构函数为virtual往往是个馊主意。当多重继承时,把基类的析构函数设置为虚函数是一个好习惯,尽管有时候基类析构函数不做任何事情。使用虚析构函数可以保证正确的析构函数被调用;在构造派生类对象时,首先调用基类构造函数,再调用派生类的构造函数;析构对象时恰恰相反。

关键字: 构造对象;析构对象;构造次序;析构次序

3. 抽象基类


把虚方法设置为0,虚方法就是纯虚函数。如:virtual funName() = 0;// 纯虚函数。包含纯虚函数的类只能作为基类,纯虚基类是抽象基类,抽象基类不能创建对象

如果基类中至少含有一个纯虚函数,那么该基类为抽象基类(Abstract Base Class),抽象基类不能创建对象,抽象基类用于为它的派生类提供接口,派生类必须为其实现纯虚函数。一般抽象基类的纯虚函数(写给编译器看的)不对其定义,但是C++甚至允许抽象基类中的纯虚函数有定义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值