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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
UFO94
264 / 253 / 13
Регистрация: 04.04.2012
Сообщений: 546
#1

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

08.05.2012, 20:48. Просмотров 1561. Ответов 11
Метки нет (Все метки)

Часто сталкиваюсь в этой ветке форума с вопросами по структурам и на порядок реже -- с вопросами по классам. Я так понимаю, что это связано с тем, что в вузах учат чаще и больше структуры, чем классы. Есть ли у структур какие-то преимущества перед классами (кроме того, что классы не понимают компиляторы чистого С)? Мне казалось, что классы=структуры+методы, т.е. классы более удобный и универсальный инструмент?
Заранее спасибо за ответы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2012, 20:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Классы vs Структуры (C++):

классы и структуры - C++
различие между классами и структурами заключается только в доступе по-умолчанию к элементам: public в структурах и private в классах ...

Классы и структуры... - C++
Здраствуйте. Прошу помочь вот с такой вещью. У меня есть структура(SPI) в классе(NOTE). Подскажите пожалуйста каким образом мне можно...

Классы и структуры в С++ - C++
Здравствуйте,помогите пожалуйста сделать задание - "Дана вещественная матрица m*n.Найти 2 суммы:наибольших значений элементов ее...

Структуры и функции (КЛАССЫ) - C++
1. Создать структуру, которая описывает указанную в задании сущность. 2. Написать функции, которые служат для обработки данных,...

тема структуры(классы) - C++
Выдает такую ошибку что в этой строке if (stricmp(a.adress,"exit")==0) invalid conversation from char to const char Заранее огромное...

переделать структуры в классы - C++
Найти корни квадратного трехчлена с заданными комплексными коэффициентами. Для моделирования комплексных чисел объявите класс. ...

11
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
08.05.2012, 20:51 #2
Отличия между структурами и классами
1
zss
Модератор
Эксперт С++
6401 / 5967 / 1944
Регистрация: 18.12.2011
Сообщений: 15,367
Завершенные тесты: 1
08.05.2012, 20:54 #3
В С++ класс отличается от структуры тем, что по умолчанию данные
и методы в классе имеют спецификатор доступа private, а в структуре public.
Поскольку объектно-ориентированнное программирование предполагает изначально
закрывать доступ к данным объекта, то более естественно использовать class.
2
elivin
65 / 65 / 1
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
08.05.2012, 20:56 #4
Цитата Сообщение от UFO94 Посмотреть сообщение
Есть ли у структур какие-то преимущества перед классами (кроме того, что классы не понимают компиляторы чистого С)? Мне казалось, что классы=структуры+методы, т.е. классы более удобный и универсальный инструмент?
Насколько помню, структуры в Си и в C++ различаются. В C++ основное (а может и единственное) отличие заключается в том, что у структур данные и методы по умолчанию public, а у классов - private.
1
UFO94
264 / 253 / 13
Регистрация: 04.04.2012
Сообщений: 546
08.05.2012, 21:04  [ТС] #5
Спасибо! Т.е., по существу, это абсолютно равные по возможностям обьекты, а структуры лучше только своей совместимостью с С?
0
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
08.05.2012, 21:28 #6
Цитата Сообщение от elivin Посмотреть сообщение
Насколько помню, структуры в Си и в C++ различаются
В с++ это тоже самое, только в начале спецификатор у структур public, а у классов - private. При наследовании по умолчанию тоже когда наследуешь от структуры будет наследование public (если явно не указать), а у классов - private.
1
soon
2541 / 1306 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.05.2012, 21:31 #7
Цитата Сообщение от UFO94 Посмотреть сообщение
а структуры лучше только своей совместимостью с С?
А вы собираетесь писать на С++ с использованием ООП и хотите, чтобы код еще компилировался на Сишном компиляторе? Прикольно.
Может, вы что-то другое вкладываете в понятие "совместимость с Си"?
0
UFO94
264 / 253 / 13
Регистрация: 04.04.2012
Сообщений: 546
08.05.2012, 21:39  [ТС] #8
Хм... Вообще-то, я за свою жизнь ни одной структуры не написал, все пишу классами, так что мне хватает и того, что код на С++ - компиляторе работает. Просто хотелось для себя узнать, в чем отличия.
0
elivin
65 / 65 / 1
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
08.05.2012, 22:14 #9
Цитата Сообщение от Gepar Посмотреть сообщение
В с++ это тоже самое, только в начале спецификатор у структур public, а у классов - private. При наследовании по умолчанию тоже когда наследуешь от структуры будет наследование public (если явно не указать), а у классов - private.
Разве в Си-шных структурах есть методы?
0
UFO94
264 / 253 / 13
Регистрация: 04.04.2012
Сообщений: 546
08.05.2012, 22:27  [ТС] #10
Да, судя по обсуждению в теме, которую кинул Infinity3000, есть. И конструкторы есть.
0
soon
2541 / 1306 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.05.2012, 22:45 #11
Цитата Сообщение от elivin Посмотреть сообщение
Разве в Си-шных структурах есть методы?
В Си - нет. В плюсах - есть.
2
elivin
65 / 65 / 1
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
09.05.2012, 15:25 #12

Не по теме:

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


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

P.S. soon, не заметил, что вторая страница есть
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.05.2012, 15:25
Привет! Вот еще темы с ответами:

Структуры заменить на классы - C++
Дана программа, выдающая список дамской обуви и ассортимент обуви нужного артикула. Сведения берутся из файла "READ.DAT" Код...

Зачем нужны классы и структуры? - C++
1. Зачем нужны классы? 2. Зачем нужны аргументы в main()? 3. Зачем нужны структуры. struct *имя*{}?

Классы / Структуры и русский язык - C++
Вобщем у меня такой баг вылазиет незнаю как побороть... Подскажите в чём грабли, и как решить. Если создаю массив обьектов то начиная...

Мнение. Что лучше Структуры или Классы? - C++
Ребят, вопрос такой у меня возник. При решении одной и той же задачи я использовала Структуры и классы, но вот что из них лучше и...


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

Или воспользуйтесь поиском по форуму:
12
Yandex
Объявления
09.05.2012, 15:25
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru