c++虚函数纯虚函数

虚函数:用virtual关键字声明的; 纯虚函数:前面有virtual关键字,后面有=0;

纯虚函数的作用:

在c++中作为接口使用,因为c++没有专门的interface接口,就用纯虚函数来作为接口类。

抽象类

至少有一个纯虚函数的类,叫抽象类,注意是纯虚函数;抽象类只有一个用途:为派生类提供基类。抽象类不能实例化,但是抽象类可以有指针,指针就是用来操作衍生类。
知道纯虚函数是作为接口就行了,给被人写接口的时候用纯虚函数;
一般自己写经常用的还是虚函数,如果你预判这个方法在衍生类中会重写,那就把这个函数写成虚函数,子类中可以重写,也可以不重写,(如果是纯虚函数,必须重写);
虚函数的子类继承了父类的接口和父类的实现,如果调用一个父类和子类都有的方法,那就是采用就近原则,如果子类中有自己的定义,那就调用自己的,如果子类中没有自己的定义,就去父类里面找,调用父类的,父类没有,就去祖父类中找。
父类的指针指向子类的对象;父类的指针=子类的指针;这个叫上行转换,这个是绝对安全的转换,而且是隐式的,不需要static_cast或者dynamical_cast;赋值的本质是把数据写入内存,这里主要就是 成员变量和虚函数表。成员函数不需要赋值,不需要写入内存。成员函数存储在全局数据区;下行转换并非绝对不可以,必要条件是基类中必须有虚函数,有虚函数,才说明子类中可能有实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值