基本介绍转自:https://blog.csdn.net/zhangzheng0413/article/details/41541845
一、基本介绍
1、类成员权限:
public的定义:所有范围都能访问。表明该数据成员、或成员函数是对所有用户开放的;
白话:所有用户都可以直接调用。
protected的定义:类自身、子类能访问;
白话: 对于子女、朋友来说,就是public的,可以自由使用,没有任何限制;而对于其他的外部class,protected就变成private。
private的定义:类自身能访问;
白话:私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。
二、继承方式
子类对父类的继承方式:public、protected与private是在以上定义基础上定义了子类中父类部分的成员(public与protected)在被继承后对外界的访问权限
三、总结
以上所述:类的内部和外界之分,类内部指的是在类所定义的范围内,即class A{}; 在括号内的作用范围之内;类外部(或换一种说法,外界访问),指的是1、通过实例化一个对象,去访问类的成员class A 。2、通过继承的方式去访问class A。3、通过friend的方式去访问class A
因此,
1、不考虑继承时,单对类定义本身而言,即class A{}; 内,三种权限的声明,对本类内部的方法访问不产生任何约束,其实就是“自己看自己”;而有效的时候,是对外界访问本类方法和数据所做出的约束。
2、而本类被外部访问时,
2.1 非继承方式,依据类内本身的权限划分;
friend: 除private以外的全部;(待确认)
类对象访问:public全范围内的内容;
2.2 继承方式访问时,加一层继承方式权限约束,最终权限向下看齐;
这里可以理解为,当前类将父类继承过来的内容(除private外)按照最终权限,挪到了当前类对应的权限下; 后面再被继承或者被访问时按照这个权限即可。
原文:https://www.cnblogs.com/liwe1004/p/15253314.html