可能重复:
什么时候应该在 C++ 中使用类和结构?
在使用 C++ 编写程序时,何时应该使用 STRUCT 声明而不是 CLASS 声明?
- 绝不 !!?
- 任何事情......无论哪个让一个人感觉更好?
可能重复:
什么时候应该在 C++ 中使用类和结构?
在使用 C++ 编写程序时,何时应该使用 STRUCT 声明而不是 CLASS 声明?
两者之间的唯一区别是默认情况下struct
是公共的,而class
成员是私有的。
我的规则是struct
在我的意思是一组相关数据时使用,在读/写它们时没有任何特殊语义。class
当我打算用更丰富的语义(读取方法)包装数据时使用,这些语义更有意义,提供任何需要的保护,或者实现更抽象的东西。
除了默认的访问级别,astruct
和 aclass
是完全等价的。
我发现差异主要在程序员的脑海中——按照惯例,我们通常使用struct
s 将小对象放在一起,没有复杂的功能——例如,Point
只有 3 个成员的 a——坐标。POD 类型。
另一方面,我们通常使用class
es 来包含更大的对象,具有复杂的功能和相当大的界面。
例如:
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.
};