C++ 中权限问题的思考

基本介绍转自: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外)按照最终权限,挪到了当前类对应的权限下;  后面再被继承或者被访问时按照这个权限即可。

 

 

 

  

 

posted @ 2021-09-10 22:37  乐天的LEEE  阅读(49)  评论(0编辑  收藏  举报