Avatar ·

В чем разница между 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. Если можно, покажите разницу на примере наследования — я слышал, что там тоже есть нюансы.