在C++中何时使用class,何时使用struct?我们来分析关键区别
大家好!我在学习C++,一直搞不清楚什么情况下该用class,什么情况下该用struct。虽然它们在语法上几乎相同,但我读到过它们成员默认访问权限有区别。例如,我写了一个存储点坐标的结构体:
```cpp
struct Point {
int x;
int y;
};
```
以及一个点的class:
```cpp
class PointClass {
int x;
int y;
public:
PointClass(int x, int y) : x(x), y(y) {}
};
```
我这样使用它们:
```cpp
Point p1 = {10, 20}; // 可以工作
PointClass p2(10, 20); // 可以工作
```
但当我尝试用class来存储一些数据和method时,就产生了困惑。我听说过一些观点,认为struct用于简单数据,而class用于带有不变量的完整对象。但具体界限在哪里?在C#和C++中这有区别吗?也许有经验丰富的开发者有一些规则或best practices?提前感谢您的解答!