不同的继承方式
被忽视的细节
class Parent
{};
class Child:public Parent
{};
冒号(
:
)标识继承关系,Parent被继承的类
public的意义是什么意思?
可以将public替换成protected或者private吗?
替换后和public的区别是什么?
#include <iostream>
using namespace std;
class Parent{};
class Child1:public Parent{};
class Child2:protected Parent{};
class Child3:private Parent{};
int main(int argc, char const *argv[])
{
return 0;
}
结论
- public继承
- 父类成员在子类中保持原有访问级别
- protected继承
- 父类中的公有成员变成保护成员,其他成员保持不变
- private继承
- 父类成员在子类中变成私有成员
继承成员的访问属性
=Max{继承方式,父类成员访问属性}
C++ 中的默认继承方式为private
在C++的继承中
- 一般而言,C++项目只使用pubilc继承
- C++的派生语言只支持一种继承方式(public)
- protected和private继承带来的复杂性远大于实用性