Другие языки программирования и технологии

C++ классы и структуры

В чём разница между ними, кроме того, что в классах по умолчанию всё закрыто, а в структурах открыто?
Структуры имеют обратную совместимость с Си.
Алексей Ревков
Алексей Ревков
61 467
Лучший ответ
Структура содержит только данные, именуемые полями.

В классах это называется свойствами объекта.
Но класс помимо свойств содержит в себе методы (описания или определения функций) и события (описания и обработчики событий) .
Всё это хранится внутри класса как целостная структура, но уже не данных, а структура объекта. На основе описания класса как переменной создаются в памяти объекты. В момент создания объекта (или экземпляра класса) отводится память и на неё создаётся ссылка. Доступ к объекту осуществляется через указатель-переменную, а внутри объекта через внутренние ссылки (указатели или смещения) .

Классы закрыты по умолчанию по той причине, что основные классы в среде разработчика, уже готовы к работе, представляют закрытое пространство имен, такое, которое не мешает использовать любые идентификаторы для других целей. Если программист пожелает, он может сделать отдельные детали доступными, но он знает куда вмешивается и на нём лежит ответственность за содеянное.
Обычно полная структура класса может оставаться программисту неизвестной, а уж если он начинает в неё вмешиваться, то должен изучать.
Юрий Дорофеев
Юрий Дорофеев
70 042
Алексей Ревков > Структура содержит только данные, именуемые полями.
Это в Си, а в плюсах другая петрушка, структура - это класс. Если структура содержит только поля, то она совместима с Си.
ИМХО больше ни в чем кроме открыто/закрыто разницы в плюсах нет.

А про совместимость с "С" - плюсы считают структуры из Си своими, но структуры из плюсов Си не поймет.
Dharma Sarkar
Dharma Sarkar
27 060
Владимир Коротченко Что значит структуры из плюсов? Классы в С++?
В классах ещё и методы (функции, обрабатывающие переменные класса) инкапсулированны (в общей оболочке) . А так, я ещё мал, что бы такую разницу определить.)
Владимир Коротченко Так методы и в структурах есть!