可以介绍一下不同继承下访问权限吗
时间: 2023-12-11 21:04:17 浏览: 33
在C++中,有以下几种继承方式:
1.公有继承(public inheritance):基类中的公有成员在派生类中仍为公有成员,基类中的保护成员在派生类中仍为保护成员,但不能直接访问基类中的私有成员。
2.私有继承(private inheritance):基类中的公有和保护成员都将成为派生类的私有成员,不能直接访问。
3.保护继承(protected inheritance):基类中的公有和保护成员都将成为派生类的保护成员,不能直接访问,但可以通过派生类的成员函数访问。
在不同的继承方式下,派生类访问基类成员的方式也会有所不同。对于公有继承,派生类可以直接访问基类中的公有成员,但不能直接访问基类中的保护成员和私有成员。对于私有继承,基类中的公有和保护成员都将成为派生类的私有成员,只能通过派生类的成员函数访问,不能直接访问。对于保护继承,基类中的公有和保护成员都将成为派生类的保护成员,不能直接访问,但可以通过派生类的成员函数访问。
相关问题
不同继承方法的子类对象对基类访问权限
不同继承方法的子类对象对基类访问权限是不同的。
对于公有继承,子类对象可以访问基类的公有成员和受保护成员,但无法访问基类的私有成员。
对于私有继承,子类对象可以访问基类的公有成员、受保护成员和私有成员,但它们只能通过自身的公有和受保护成员访问基类成员。
对于保护继承,子类对象可以访问基类的公有成员和受保护成员,但无法访问基类的私有成员。
总之,子类对象对基类的访问权限仍然遵守着访问权限的规则,不同的继承方式仅仅影响了子类对象通过哪些方式来访问基类成员。
简述在protected继承方式下基类成员的访问权限?
在protected继承方式下,基类的public成员在派生类中的访问权限仍为protected,基类的protected成员在派生类中的访问权限也为protected,但是基类的private成员在派生类中不可访问。这意味着派生类的成员函数可以访问基类的protected成员,但是不能访问基类的private成员。而派生类的对象不能直接访问基类的protected成员和private成员,只能通过派生类的成员函数来访问。