C# · 12月 20, 2021

C++继承后各成员的访问方式

OOL允许创建类的层次关系,类的数据成员及成员函数共有公有,私有,受保护的三种类型,类的继承方式也是这三种。

首先介绍下基类的各个成员的访问条件

1.公有成员:在任何函数中创建基类对象,都能访问基类中的公有成员,或者直接在Pubilc中访问该成员。

2.受保护成员:在基类及不相关的类中无法访问,只能在派生类中访问。

3.私有成员:只限在基类的public中访问,所有私有成员是最安全的成员。

下面介绍继承之后,成员属性的变化

1.公有继承:各属性不变,公有仍为公有,受保护仍为受保护,私有仍为私有。

2.私有继承:公有与私有变为私有,受保护仍为受保护。

3.受保护继承:公有与受保护变为受保护,私有仍为私有。

下面介绍继承之后,访问条件的变化。

1.公有继承

(1)公有成员:可以访问自己的公有成员,也有访问基类的公有成员还可以访问自己的私有成员

(2)受保护成员:可以访问基类的受保护成员,但不可以访问自己的受保护成员

(3)私有成员:不可访问基类的私有成员

2.私有继承

(1)公有成员:基类的公有成员变为派生类的私有成员,可以访问。也可以访问自己的公有成员和私有成员

(2)受保护成员:基类与自己的受保护成员都只能交给自己的派生类访问

(3)私有成员:任何继承方式都不能访问基类的私有成员

3.受保护继承

(1)公有成员:只可访问自己的公有成员和私有成员

(2)受保护成员:基类的公有成员和自己的受保护成员都只能交给自己的派生类访问

(3)私有成员:任何继承方式都不能访问基类的私有成员

解释一下上面的访问条件,其实在不涉及基类的情况下,派生类自己成员的访问方式与基类的一样的,只需搞清楚

各种继承方式的各类成员如何访问即可。