C++中struct和class的区别是什么?何时使用?
各位同行,大家好!
我刚开始学习C++,一直搞不懂struct和class的区别。乍一看它们几乎一样——都能组合数据和函数。但为什么语言中要有两个关键字做同一件事呢?
我了解到,在C语言中(struct的起源),结构体只存储数据,而C++中给它们添加了函数。但看这个例子:
```cpp
struct Point {
int x, y;
void print() { cout << x << ", " << y; }
};
class Circle {
int radius;
void draw() { /* ... */ }
};
```
如果我尝试这样做:
```cpp
Point p;
p.x = 10; // 可以
Circle c;
c.radius = 5; // 错误!radius是private
```
为什么radius突然变成了private?我明明没指定!而在struct中正好相反——字段默认是public。这是唯一的区别吗?
还有一点:我看到人们用struct表示小型数据结构(比如点、数对),而用class表示带有逻辑的大型对象。这是推