C++类/结构成员的默认可见性

S I*_*S I 53 c++ struct class member

在C++中,为什么private是类的成员的默认可见性,但是对于结构是公共的?

Ore*_*ner 83

C++是作为C的超集引入的.Structs是从C继承而来的,其成员的语义是公共的.存在大量的C代码,包括希望使用C++的库,它们使用结构.类是在C++中引入的,为了符合OO封装原则,它们的成员默认是私有的.


a_m*_*m0d 9

因为类是进行面向对象的常用方法,这意味着成员变量应该是私有的并且具有公共访问器 - 这对于创建低耦合是有益的.另一方面,结构必须与C结构兼容,C结构总是公共的(C中没有公共和私有的概念),并且不使用访问器/变换器.