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