当前位置: 首页 > 资讯

Effective C++ 第三十四条 Differentiate between inheritance of interfa

来源:哔哩哔哩 发布时间:2023-02-03 09:17:16 分享至:

区分接口继承和实现继承

C++  derived 继承 base,对于接口和实现的选择也有几种方式


(相关资料图)

继承接口不继承实现

继承接口外加一份缺省的代码实现,可以重写

继承接口和实现,不重写

下面为这三种情况详细介绍该如何做

1.继承接口不继承实现

base 中的函数采用 pure virtual ,这样就可以让 derived 不得不为其写一份实现

2.继承接口外加一份缺省实现,可以重写

采用 impure virtual 实现

如果需要重写就在 derived 中重新实现一遍 fun,如果不需要则什么都不需要写。

3.继承接口和实现,且不需要重写

采用 non-virtual 来实现

总结:

接口继承和实现继承不同。在 public 继承之下,derived classes 总是继承 base class 的接口。

pure virtual 函数只具体指定继承接口。

impure virtual 函数具体指定接口继承以及缺省实现继承。

non-virtual 函数具体指定接口继承以及强制性实现继承。

关键词:

Copyright   2015-2023 印度礼仪网 版权所有  备案号:沪ICP备2022005074号-8   联系邮箱:58 55 97 3@qq.com