Avatar ·

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表示带有逻辑的大型对象。这是推