在C++中,何时使用struct而不是class

16 浏览
0 Comments

在C++中,何时使用struct而不是class

该问题已经在此处有答案

可能是重复问题:

在C++中何时应使用类而不是结构体?

何时,如果有的话,应该在编写使用C++的程序时使用STRUCT声明而不是CLASS声明?

  1. 从不!!?
  2. 任何事情……无论哪种方式让人感觉更好?
admin 更改状态以发布 2023年5月20日
0
0 Comments

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

我的规则是:当我指的是一组相关的数据而没有任何特殊的读写语义时,使用struct。当我打算在数据中添加更丰富的语义(读取方法)时,采用class,这些方法更有意义,提供所需的保护,或实现更抽象的内容。

0
0 Comments

除了默认的访问级别外,structclass是完全等效的。

我发现差异主要在于程序员的心智 - 按照传统规定,我们通常使用struct来组合小的对象,没有复杂的功能 - 例如,只有3个成员-坐标的Point。POD类型。

另一方面,我们通常使用class来包含相对较大的对象,具有复杂的功能和相当大的接口。

例如:

struct Point { 
   int x,y,z; 
};
class Shape{
   std::vector corners;
public:
   Shape(const std::vector corners);
   double getVolume();
   double getArea();
   bool   isConvex();
   //etc.
};

0