c++ 之private /protect/ public

C++中public、protect、private的访问权限控制

访问权限html

一个类的public成员变量、成员函数,能够经过类的成员函数、类的实例变量进行访问函数

一个类的protected成员变量、成员函数,没法经过类的实例变量进行访问。可是能够经过类的友元函数、友元类进行访问。spa

一个类的private成员变量、成员函数,没法经过类的实例变量进行访问。可是能够经过类的友元函数、友元类进行访问。htm

 

继承权限
public继承
派生类经过public继承,基类的各类权限不变 。
派生类的成员函数,能够访问基类的public成员、protected成员,可是没法访问基类的private成员。
派生类的实例变量,能够访问基类的public成员,可是没法访问protected、private成员,仿佛基类的成员之间加到了派生类通常。
能够将public继承当作派生类将基类的public,protected成员囊括到派生类,可是不包括private成员。对象

protected继承
 派生类经过protected继承,基类的public成员在派生类中的权限变成了protected 。protected和private不变。
派生类的成员函数,能够访问基类的public成员、protected成员,可是没法访问基类的private成员。
派生类的实例变量,没法访问基类的任何成员,由于基类的public成员在派生类中变成了protected。
能够将protected继承当作派生类将基类的public,protected成员囊括到派生类,所有做为派生类的protected成员,可是不包括private成员。
private成员是基类内部的隐私,除了友元,全部人员都不得窥探。派生类的友元,都不能访问blog

private继承
派生类经过private继承,基类的全部成员在派生类中的权限变成了private。
派生类的成员函数,能够访问基类的public成员、protected成员,可是没法访问基类的private成员。
派生类的实例变量,没法访问基类的任何成员,由于基类的全部成员在派生类中变成了private。
能够将private继承当作派生类将基类的public,protected成员囊括到派生类,所有做为派生类的private成员,可是不包括private成员。
private成员是基类内部的隐私,除了友元,全部人员都不得窥探。派生类的友元,都不能访问继承

总结:继承修饰符,就像是一种筛子,将基类的成员筛到派生类。public、protected、private,就是筛子的眼。
经过public继承,全部基类成员(除了private),public、protected都到了派生类里面,public筛眼比较大,不会改变访问权限。
经过protected继承,全部基类成员(除了private),public、protected都到了派生类里面,protected筛眼大小适中,全部过来的成员都变成了protected。
经过private继承,全部基类成员(除了private),public、protected都到了派生类里面,private筛眼最小,全部过来的成员都变成了private。get

 

继承总结:权限控制

1.private 、protect 、public 继承base类后,子类的成员函数都只能访问base类中public、protect中的成员变量

2.子类实例化一个对象后,对象只能调用和访问子类中的public成员父类成员在子类中的访问权限 1.看其在父类中的访问权限 2.看子类继承父类的权限)

成员:成员变量和成员函数。

 

转自 http://www.javashuo.com/article/p-bwgmaphl-gt.html

相关文章
相关标签/搜索