为什么数据成员默认在C++中是私有的?

Nag*_*aga 8 c++ class

在C++中,默认情况下,类中的所有数据成员是否都是私有的?

Nic*_*kis 18

C++的设计与演变

2.10保护模式

在开始使用Classes进行C工作之前,我使用过操作系统.剑桥CAP计算机和类似系统的保护概念 - 而不是编程语言中的任何工作 - 启发了C++保护机制.班级是保护的单位,基本原则是你不能授予自己访问课程的权利; 只有在类声明中放置的声明(据称由其所有者)才能授予访问权限.默认情况下,所有信息都是私有的.


pax*_*blo 16

因为最好是正确封装并且只打开所需的东西,而不是默认打开所有东西并且必须关闭它.

封装(信息隐藏)是一个很好的东西,像安全性(例如,锁定的网络服务关闭),默认的应该朝好的而不是坏的.

  • @Roger,这是因为人们通常会选择默认值.在这种情况下,默认值是隐藏信息.这有道理的原因是你必须做额外的工作来揭露事物,因为人们本身就是懒惰的:-),这将有助于最大限度地减少暴露的内容. (3认同)

Ben*_*igt 6

因为否则就没有差异之间的所有classstruct

  • AFAIK`class`和`struct`仅在默认可访问性方面有所不同.它们在所有其他行为方面是相同的,包括继承. (4认同)