В чем разница между struct и class в C++? Когда что использовать?
Приветствую, коллеги!
Я только начал изучать 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 всё наоборот — поля открыты по умолчанию. Это единственное отличие?
И ещё один момент: я видел, как люди используют struct для маленьких структур данных (вроде точки, пары чисел), а class — для больших объектов с логикой. Это просто традиция или есть реальные технические причины?
Объясните, пожалуйста, на примерах, когда лучше использовать struct, а когда class. И есть ли какие-то подводные камни, о которых нужно знать новичку?
Заранее спасибо за помощь!
P.S. Если можно, покажите разницу на примере наследования — я слышал, что там тоже есть нюансы.
Ответов пока нет.
Войдите чтобы оставить ответ