Avatar ·

在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?提前感谢您的解答!