何时在c ++中使用struct over class

时间:2012-12-17 17:46:55

标签: c++ oop class struct

  

可能重复:
  When should you use a class vs a struct in C++?

在使用C ++编写程序时,是否应该使用STRUCT声明而不是CLASS声明?

  1. 从不!! ?
  2. 任何事情......哪一个让人感觉更好?

2 个答案:

答案 0 :(得分:3)

两者之间的唯一区别是,默认情况下struct是公开的,而class成员是私有的。

我的规则是使用struct,当我指的是一堆相关数据而没有任何关于读/写它们的特殊语义。当我打算将数据包装在更有意义的更丰富的语义(读取方法)中,提供任何必要的保护或实现更抽象的东西时,请使用class

答案 1 :(得分:2)

除了默认访问权限级别外,structclass 完全等效

我发现差异主要在程序员的脑海中 - 按照惯例,我们通常使用struct来组合小对象,而不需要复杂的功能 - 例如,Point只有class 3名成员 - 坐标。 POD类型。

另一方面,我们通常使用struct Point { int x,y,z; }; class Shape{ std::vector<Point> corners; public: Shape(const std::vector<Point> corners); double getVolume(); double getArea(); bool isConvex(); //etc. }; es来包含更大的对象,具有复杂的功能和相当大的界面。

例如:

{{1}}