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

时间:2010-03-28 06:37:16

标签: c++ class

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

5 个答案:

答案 0 :(得分:18)

The Design and Evolution of C++

2.10保护模式

  

开始使用C之前的工作   上课,我一直在操作   系统。保护的概念   来自剑桥CAP计算机和   类似的系统 - 而不是任何工作   在编程语言中 - 受到启发   C ++保护机制。该   阶级是保护的单位   根本规则是,你不能   授予自己访问课程的权利;只要   放在课堂上的声明   声明(据称由其所有者)   可以授予访问权限默认情况下,全部   信息是私人的。

答案 1 :(得分:16)

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

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

答案 2 :(得分:6)

因为否则classstruct之间根本没有区别?

答案 3 :(得分:4)

原因是类的公共部分应该明确公开。

有趣的是(对我而言)是许多类定义的开头大括号之后的第一行是public:。一个类的大多数读者都对公共位感兴趣,因为这是他们与之交互的内容,所以很多类定义都有他们的公共位。无论如何。

C ++的访问说明符适用于它们之后的范围 - 我认为Java和C#的技术是让每个成员指定成员的可见性(具有合理的默认值)是优选的。

答案 4 :(得分:2)

总之,封装。目标是将私有实现细节(例如数据成员)设为私有。只有明确的公共API可供该类客户使用。