C++可见性
1、可见性是一个面向对象编程的概念,它指的是类的某些成员或者方法实际上有多可见。
注意,这里的可见是指:谁能看见它们,谁能调用它们,谁能使用它们。
2、可见性对程序实际运行方式没有任何影响,对程序性能或者类似的东西也没有任何影响。
它纯粹是语言中存在的东西,让我们能够写出更好的代码或者帮我们组织代码。
3、C++中有三个基础的可见性修饰符:private、public、protected。
在其他的语言如Java或者C#中,有其他的关键字。
在Java中我们可以不使用可见性修饰符,这就是所谓的default可见性修饰符。
在C#中,有个可见性修饰符叫做internal。
(回顾一下:class中默认是private,struct中默认是public)
4、如果我们在Entity类中私有化的两个变量X和Y,那么我们在主函数中声明一个Entity的实例e时,我们不能直接对e.X=2这样操作,因为X是私有的,只有Entity类和它的友元才能访问这些变量。函数也是类似的。
5、protected比private更加可见,比public更加不可见。
protected意味着这个类以及类的所有子类,都可以访问这些符号。但是在类之外的函数或者不是类的子类,就不可以访问这些符号(符号指的是变量和函数)
6、为什么要使用到可见性呢?
可见性是为了让代码更加容易维护、容易理解,不管是阅读代码还是扩展代码,与性能无关,也不会产生完全不需要的代码。
可见性不是CPU需要理解的东西,它只是人类发明的东西,为了帮助其他人和自己。
帮助他人是指:当我们写了一个东西用private修饰时,我在告诉别人:嘿!您不能从其他类访问这个,不能从其他代码访问,您只能从这个类的内部访问。