条款34:区分接口继承和实现继承

目录

 

接口继承和实现继承不同。

纯虚函数 pure virtual 

简朴的虚函数/非纯虚函数 inpure virtual

非虚函数 non-virtual 


接口继承和实现继承不同。

在public继承之下,derived classed 总是继承base class的接口。


  • 纯虚函数 pure virtual 


virtual void draw() const = 0;

2个特性:它们必须被继承了它们的子类的具体class重新声明;而且它们在抽象class中通常没有定义。

目的:为了让derived classes 只继承函数接口。

 

  • 简朴的虚函数/非纯虚函数 inpure virtual


virtual void error(const std::string& msg);

目的:让让derived classes继承该函数的接口和缺省实现。

你必须支持一个error函数,但如果你不想自己写一个,可以使用父类提供的缺省版本。

 

  • 非虚函数 non-virtual 


int objectID() const;

具体指定接口继承以及强制性实现继承(这里是因为is a的特性,你既然继承了它,也符合设计模式的里氏替换原则)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值