首先来了解一下保护成员:
保护成员在基类中的访问权限与私有成员相同,可以被类成员访问,但是不能被类的对象和外部函数访问。
但是保护成员可以被派生类的成员函数访问,不能被派生类的对象访问。
继承方式:
公有继承:
原来的public,protected保持不变,private不可见
派生类的成员函数可以访问基类的公有成员和保护成员,不能访问基类的私有成员
派生类的对象可以访问基类的公有成员,不能访问基类的保护成员和私有成员
友元函数都可以访问
私有继承:
原来的public,protected,private均不可见
派生类的成员函数可以访问基类的公有成员和保护成员,不能访问基类的私有成员
派生类的对象无法访问基类的任何成员 当派生类作为基类被继续继承时,新的派生类的成员和对象不能访问根基类的任何成员
友元函数都可以访问
保护继承:
原来的public变成protected,protected还是protected,private不可见
派生类的成员函数可以访问基类的公有成员和保护成员,不能访问基类的私有成员
派生类的对象可以访问基类的公有成员,不能访问基类的保护成员和私有成员
友元函数都可以访问
下面列出三种不同的继承方式的基类特性和派生类特性。
表格部分参考了:C++继承:公有,私有,保护