为什么C++同时具有类和结构?

Loc*_*ead 4 c++ struct class

可能重复:
C++中struct和class之间有什么区别

如果结构和类之间的唯一区别是默认访问说明符(在C++中),那么为什么C++也有类?

Bil*_*ill 13

首先,它向后兼容C.第二(更重要的是),它有助于描述你的意图.标准惯例是应该用POD表示,struct并且应该用数据和行为的集合来表示class.

  • @MisterSir - 不,**向后**兼容性意味着使用结构的C代码将在C++下按预期编译和工作.你的例子(带有行为的struct)是一个C++代码,当然它不能在C下工作,因为C++不保证**forward**兼容性 (2认同)
  • @Tomalak:我认为C最大的缺点之一就是它没有与C++ 0x向前兼容.:-) (2认同)