Форум программистов, компьютерный форум CyberForum.ru

Классы vs Структуры - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
UFO94
 Аватар для UFO94
263 / 252 / 13
Регистрация: 04.04.2012
Сообщений: 546
08.05.2012, 20:48     Классы vs Структуры #1
Часто сталкиваюсь в этой ветке форума с вопросами по структурам и на порядок реже -- с вопросами по классам. Я так понимаю, что это связано с тем, что в вузах учат чаще и больше структуры, чем классы. Есть ли у структур какие-то преимущества перед классами (кроме того, что классы не понимают компиляторы чистого С)? Мне казалось, что классы=структуры+методы, т.е. классы более удобный и универсальный инструмент?
Заранее спасибо за ответы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2012, 20:48     Классы vs Структуры
Посмотрите здесь:

C++ Классы и структуры...
Структуры заменить на классы C++
C++ Структуры и функции (КЛАССЫ)
переделать структуры в классы C++
C++ тема структуры(классы)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Infinity3000
 Аватар для Infinity3000
1057 / 576 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
08.05.2012, 20:51     Классы vs Структуры #2
Отличия между структурами и классами
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
08.05.2012, 20:54     Классы vs Структуры #3
В С++ класс отличается от структуры тем, что по умолчанию данные
и методы в классе имеют спецификатор доступа private, а в структуре public.
Поскольку объектно-ориентированнное программирование предполагает изначально
закрывать доступ к данным объекта, то более естественно использовать class.
elivin
65 / 65 / 1
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
08.05.2012, 20:56     Классы vs Структуры #4
Цитата Сообщение от UFO94 Посмотреть сообщение
Есть ли у структур какие-то преимущества перед классами (кроме того, что классы не понимают компиляторы чистого С)? Мне казалось, что классы=структуры+методы, т.е. классы более удобный и универсальный инструмент?
Насколько помню, структуры в Си и в C++ различаются. В C++ основное (а может и единственное) отличие заключается в том, что у структур данные и методы по умолчанию public, а у классов - private.
UFO94
 Аватар для UFO94
263 / 252 / 13
Регистрация: 04.04.2012
Сообщений: 546
08.05.2012, 21:04  [ТС]     Классы vs Структуры #5
Спасибо! Т.е., по существу, это абсолютно равные по возможностям обьекты, а структуры лучше только своей совместимостью с С?
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,508
08.05.2012, 21:28     Классы vs Структуры #6
Цитата Сообщение от elivin Посмотреть сообщение
Насколько помню, структуры в Си и в C++ различаются
В с++ это тоже самое, только в начале спецификатор у структур public, а у классов - private. При наследовании по умолчанию тоже когда наследуешь от структуры будет наследование public (если явно не указать), а у классов - private.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.05.2012, 21:31     Классы vs Структуры #7
Цитата Сообщение от UFO94 Посмотреть сообщение
а структуры лучше только своей совместимостью с С?
А вы собираетесь писать на С++ с использованием ООП и хотите, чтобы код еще компилировался на Сишном компиляторе? Прикольно.
Может, вы что-то другое вкладываете в понятие "совместимость с Си"?
UFO94
 Аватар для UFO94
263 / 252 / 13
Регистрация: 04.04.2012
Сообщений: 546
08.05.2012, 21:39  [ТС]     Классы vs Структуры #8
Хм... Вообще-то, я за свою жизнь ни одной структуры не написал, все пишу классами, так что мне хватает и того, что код на С++ - компиляторе работает. Просто хотелось для себя узнать, в чем отличия.
elivin
65 / 65 / 1
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
08.05.2012, 22:14     Классы vs Структуры #9
Цитата Сообщение от Gepar Посмотреть сообщение
В с++ это тоже самое, только в начале спецификатор у структур public, а у классов - private. При наследовании по умолчанию тоже когда наследуешь от структуры будет наследование public (если явно не указать), а у классов - private.
Разве в Си-шных структурах есть методы?
UFO94
 Аватар для UFO94
263 / 252 / 13
Регистрация: 04.04.2012
Сообщений: 546
08.05.2012, 22:27  [ТС]     Классы vs Структуры #10
Да, судя по обсуждению в теме, которую кинул Infinity3000, есть. И конструкторы есть.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.05.2012, 22:45     Классы vs Структуры #11
Цитата Сообщение от elivin Посмотреть сообщение
Разве в Си-шных структурах есть методы?
В Си - нет. В плюсах - есть.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2012, 15:25     Классы vs Структуры
Еще ссылки по теме:

классы и структуры C++
C++ Классы и структуры в С++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
elivin
65 / 65 / 1
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
09.05.2012, 15:25     Классы vs Структуры #12

Не по теме:

Вчера спать сильно хотел, так что отвечаю только сейчас.


Цитата Сообщение от UFO94 Посмотреть сообщение
Да, судя по обсуждению в теме, которую кинул Infinity3000, есть. И конструкторы есть.
В той теме обсуждаются структуры в C++. Именно поэтому я и написал "Насколько помню, структуры в Си и в C++ различаются". В Си-шных структурах отсутствуют методы (да и спецификаторы доступа тоже).

P.S. soon, не заметил, что вторая страница есть
Yandex
Объявления
09.05.2012, 15:25     Классы vs Структуры
Ответ Создать тему
Опции темы

Текущее время: 09:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru