C++ 编程中的继承、多态与类型系统深入解析
1. 继承与编程风格
在 C++ 编程中,继承是一个重要的特性。不过,在使用继承时,可能会遇到一些问题。例如下面的代码:
int main()
{
base b{42};
int x{b.value()};
derived d{};
int y{d.value()};
}
编译器会报错,提示 base 是私有的或者从 derived 类无法访问。
在编程风格上,有一些重要的原则需要遵循:
- 成员访问控制 :当不确定时,应将数据成员和成员函数设为私有,直到确定需要将某个成员设为公有。因为一旦成员成为公共接口的一部分,使用该类的任何人都可以自由使用它,这会增加代码的依赖性。修改公共成员意味着要找到并修复所有相关依赖。所以,应尽量保持公共接口简洁。如果后续需要添加成员,可以进行添加,但移除成员或将公共成员改为私有则要困难得多。当需要添加成员来支持公共接口时,应将支持函数和数据成员设为私有。
- 继承方式 :应使用公共继承而非私有继承。要记住,继承的成员也会成为派生类公共接口的一部分。如果更改基类,可能需要在派生类中编写额外的成员,以弥补原基类中存在但新基类中缺失的成员。
2. 类型多态与虚函数
2.1 类型多态的概念
类型多态是指类型为 B 的变量能够呈现出从 B 派生的任何类的“形式”。在 C++ 中,实现类
超级会员免费看
订阅专栏 解锁全文
900

被折叠的 条评论
为什么被折叠?



