在使用C ++编写程序时,是否应该使用STRUCT声明而不是CLASS声明?
答案 0 :(得分:3)
两者之间的唯一区别是,默认情况下struct
是公开的,而class
成员是私有的。
我的规则是使用struct
,当我指的是一堆相关数据而没有任何关于读/写它们的特殊语义。当我打算将数据包装在更有意义的更丰富的语义(读取方法)中,提供任何必要的保护或实现更抽象的东西时,请使用class
。
答案 1 :(得分:2)
除了默认访问权限级别外,struct
和class
完全等效。
我发现差异主要在程序员的脑海中 - 按照惯例,我们通常使用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}}