42、public,protected和private访问和继承权限/public/protected/private 的区别?

1.public的变量和函数在类的内部外部都可以访问。

2.protected的变量和函数只能在类的内部和其派生类中访问。

3.private修饰的元素只能在类内访问。

(一)访问权限

派生类可以继承基类中除了构造/析构、赋值运算符重载函数之外的成员,但是这些成员的访问属性在 派生过程中也是可以调整的,三种派生方式的访问权限如下表所示:注意外部访问并不是真正的外部访 问,而是在通过派生类的对象对基类成员的访问。

派生类对基类成员的访问形象有如下两种:

1.内部访问:由派生类中新增的成员函数对从基类继承来的成员的访问

2.外部访问:在派生类外部,通过派生类的对象对从基类继承来的成员的访问

(二)继承权限

public继承:

公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,都保持原有的状态,而基类的私有 成员任然是私有的,不能被这个派生类的子类所访问

protected继承:

保护继承的特点是基类的所有公有成员和保护成员都成为派生类的保护成员,并且只能被它的派生类成 员函数或友元函数访问,基类的私有成员仍然是私有的,访问规则如下表:

private继承:

私有继承的特点是基类的所有公有成员和保护成员都成为派生类的私有成员,并不被它的派生类的子类 所访问,基类的成员只能由自己派生类访问,无法再往下继承,访问规则如下表:

原文地址:https://www.cnblogs.com/crbhf/p/14939287.html