c++继承(三种继承方式)
三种继承方式
- 共有继承
公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的,不能被这个派生类的子类所访问。 - 私有继承
私有继承的特点是基类的公有成员和保护成员都作为派生类的私有成员,并且不能被这个派生类的子类所访问。 - 保护继承
保护继承的特点是基类的所有公有成员和保护成员都成为派生类的保护成员,并且只能被它的派生类成员函数或友元访问,基类的私有成员仍然是私有的。
继承方式之间的关系
继承方式 | 基类的public成员 | 基类的protected成员 | 基类的private成员 |
---|---|---|---|
public | 成为public成员 | 成为protected成员 | 不可见 |
protected | 成为protected成员 | 成为protected成员 | 不可见 |
private | 成为private成员 | 成为private成员 | 不可见 |
注意事项
- 不管是哪种继承方式, 在派生类内部都可以访问基类的公有成员和保护成员 , 基类的私有成员存在但是在子类中不可见( 不能访问) 。
- 使用关键字class时默认的继承方式是private, 使用struct时默认的继承方式是public, 不过最好显式的写出继承方式。
- 在实际运用中一般使用都是public继承, 极少场景下才会使用protetced/private继承。
- 在struct继承中,如果没有显式给出继承类型,则默认的为public继承;在class继承中,如果没有显式给出继承类型,则默认的为private继承;
简单总结
三种类成员访问限定符
- public(共有)
- protected(保护)
- private(私有)
三种继承关系
- public(共有继承)
- protected(保护继承)
- private(私有继承)