45_不同的继承方式

0. 问题:继承表达式中冒号(:)表示继承关系,Parent表示被继承的类, public的意义是什么?是否可以将继承语句中的public换成protected或private?如果可以,与public继承有什么区别?

45_不同的继承方式_第1张图片

编程说明:不同继承方式的尝试

#include 
#include 

using namespace std;

class Parent
{

};

class Child_A : public Parent
{

};

class Child_B : protected Parent
{

};

class Child_C : private Parent
{

};

int main()
{
    return 0;
}

1. 不同的继承方式

C++中支持三种不同的继承方式

  • public继承:父类成员在子类中保持原有访问级别
  • private继承:父类成员在子类中变为私有成员
  • protected继承:父类中的公有成员变为保护成员,其它成员保持不变
    45_不同的继承方式_第2张图片

C++中默认继承方式为private

2. 遗憾的事实

  • 一般而言,C++工程项目中只使用public继承
  • C++的派生语言只支持一种继承方式——public继承
  • protectedprivate继承带来的复杂性远大于实用性

3. 小结

  • C++中支持3中不同的继承方式
  • 继承方式直接影响父类成员在子类中的访问属性
  • 一般而言,工程中只使用public的继承方式
  • C++的派生语言中只支持public继承方式

你可能感兴趣的:(45_不同的继承方式)