Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
 Аватар для UFO94
267 / 256 / 23
Регистрация: 04.04.2012
Сообщений: 546

Классы vs Структуры

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

Студворк — интернет-сервис помощи студентам
Часто сталкиваюсь в этой ветке форума с вопросами по структурам и на порядок реже -- с вопросами по классам. Я так понимаю, что это связано с тем, что в вузах учат чаще и больше структуры, чем классы. Есть ли у структур какие-то преимущества перед классами (кроме того, что классы не понимают компиляторы чистого С)? Мне казалось, что классы=структуры+методы, т.е. классы более удобный и универсальный инструмент?
Заранее спасибо за ответы.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.05.2012, 20:48
Ответы с готовыми решениями:

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

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

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

11
 Аватар для Infinity3000
1066 / 583 / 87
Регистрация: 03.12.2009
Сообщений: 1,255
08.05.2012, 20:51
Отличия между структурами и классами
1
Модератор
Эксперт С++
 Аватар для zss
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,246
08.05.2012, 20:54
В С++ класс отличается от структуры тем, что по умолчанию данные
и методы в классе имеют спецификатор доступа private, а в структуре public.
Поскольку объектно-ориентированнное программирование предполагает изначально
закрывать доступ к данным объекта, то более естественно использовать class.
3
67 / 67 / 9
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
08.05.2012, 20:56
Цитата Сообщение от UFO94 Посмотреть сообщение
Есть ли у структур какие-то преимущества перед классами (кроме того, что классы не понимают компиляторы чистого С)? Мне казалось, что классы=структуры+методы, т.е. классы более удобный и универсальный инструмент?
Насколько помню, структуры в Си и в C++ различаются. В C++ основное (а может и единственное) отличие заключается в том, что у структур данные и методы по умолчанию public, а у классов - private.
1
 Аватар для UFO94
267 / 256 / 23
Регистрация: 04.04.2012
Сообщений: 546
08.05.2012, 21:04  [ТС]
Спасибо! Т.е., по существу, это абсолютно равные по возможностям обьекты, а структуры лучше только своей совместимостью с С?
0
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
08.05.2012, 21:28
Цитата Сообщение от elivin Посмотреть сообщение
Насколько помню, структуры в Си и в C++ различаются
В с++ это тоже самое, только в начале спецификатор у структур public, а у классов - private. При наследовании по умолчанию тоже когда наследуешь от структуры будет наследование public (если явно не указать), а у классов - private.
1
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.05.2012, 21:31
Цитата Сообщение от UFO94 Посмотреть сообщение
а структуры лучше только своей совместимостью с С?
А вы собираетесь писать на С++ с использованием ООП и хотите, чтобы код еще компилировался на Сишном компиляторе? Прикольно.
Может, вы что-то другое вкладываете в понятие "совместимость с Си"?
0
 Аватар для UFO94
267 / 256 / 23
Регистрация: 04.04.2012
Сообщений: 546
08.05.2012, 21:39  [ТС]
Хм... Вообще-то, я за свою жизнь ни одной структуры не написал, все пишу классами, так что мне хватает и того, что код на С++ - компиляторе работает. Просто хотелось для себя узнать, в чем отличия.
0
67 / 67 / 9
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
08.05.2012, 22:14
Цитата Сообщение от Gepar Посмотреть сообщение
В с++ это тоже самое, только в начале спецификатор у структур public, а у классов - private. При наследовании по умолчанию тоже когда наследуешь от структуры будет наследование public (если явно не указать), а у классов - private.
Разве в Си-шных структурах есть методы?
0
 Аватар для UFO94
267 / 256 / 23
Регистрация: 04.04.2012
Сообщений: 546
08.05.2012, 22:27  [ТС]
Да, судя по обсуждению в теме, которую кинул Infinity3000, есть. И конструкторы есть.
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.05.2012, 22:45
Цитата Сообщение от elivin Посмотреть сообщение
Разве в Си-шных структурах есть методы?
В Си - нет. В плюсах - есть.
2
67 / 67 / 9
Регистрация: 04.01.2012
Сообщений: 231
Записей в блоге: 1
09.05.2012, 15:25

Не по теме:

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


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

P.S. soon, не заметил, что вторая страница есть
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.05.2012, 15:25
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru