C++ -- 接口与实现

公有继承: Interface And Implementation

三种继承的方式:

pure virtual function
只继承基类的接口,要在派生类中重写该函数的实现。至于是在子类中实现还是子类的子类中实现都无所谓,关键是需要实例化的类就需要实现,不然对象是无法创建的。

virtual function
普通虚函数对应于基类是有缺省的实现的,派生类继承过来的函数既包含接口又包含缺省的实现。派生类可以选择是否重写缺省的实现。同时继承接口和缺省实现是一件有风险的事情。因为或许你的某个派生类忘记重写该虚函数,那调用的时候就是调用的缺省的实现。

两个解决办法:
1. pure virtual function + Default Realize。派生类只继承接口,想要使用缺省实现,必须显示调用
2. override 防止忘记, 强制重写该虚函数

normal function
派生类继承了接口和强制实现。所以不需要在派生类中重写该函数。 不重写,调用的是父类的实现。重写,调用的是派生类的实现。

有时候你会发现virtual function 和normal function 结果看,好像差不多。其实二者的区别需要从静态联编和动态联编这边分析。下次再说。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值