2009-08-08 129 views

回答

61

C++是作为C的超集而引入的。结构从C中继承下来,其成员的语义是公共的。存在大量的C代码,包括需要使用C++的库,它们使用结构。类是在C++中引入的,并且符合OO的封装哲学,它们的成员默认是私有的。

+0

那么,公平地说,封装不是所有成员都是私有的。使用C++内联,访问方法可以非常便宜,但是在许多OOP语言中,由于函数调用的开销,人们倾向于使用公共访问,因为它更便宜。为了更好的控制,如果他们的lang支持它,可以使用属性声明。但是,在本机代码中,跟踪变量变化比托管语言更难,因此通过代码中的单个点设置属性是有意义的。 – progician 2016-01-02 19:07:46

1

可能与C结构向后兼容。这种方式在C代码中声明的结构在C++代码中继续以相同的方式工作。

7

因为一个类是做对象定向的常用方式,这意味着成员变量应该是私有的并且具有公共访问器 - 这对创建low coupling很有用。另一方面,结构必须与C结构兼容,C结构始终是公共的(C中没有公共和私有概念),并且不使用访问器/增变器。