|
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
|
|
Отличия между структурами и классами18.08.2010, 12:38. Показов 27457. Ответов 58
Метки нет (Все метки)
Объясните пожалуйста, в С++, получается, что структура отличается от класса только тем, что у нее по умолчанию все данные public?
Т.е. наследовать структуры я тоже могу. Тогда как-то непонятен смысл создания двух одинаковых типов объектов, только что с разными названиями.
2
|
|
| 18.08.2010, 12:38 | |
|
Ответы с готовыми решениями:
58
Отличия между классами и массивами
Отличия между классами для работы с интернетом |
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 18.08.2010, 12:40 | |
Сообщение было отмечено как решение
Решение
half-node, Совместимость с Си.
3
|
|
|
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
|
|
| 18.08.2010, 12:41 [ТС] | |
|
1
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 18.08.2010, 12:58 | |
|
half-node, Структуры - совместимость с языком Си. В С++ структуры и классы эквивалентны, кроме доступа по умолчанию.
Добавлено через 15 минут Хотя... Не уверен что в классе можно определить битовые поля, как в структуре, но наверное тоже можно. Да можно. Тогда ничем, кроме доступа
1
|
|
|
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
|
|
| 18.08.2010, 13:03 [ТС] | |
|
Спасибо. Более или менее ясно.
0
|
|
|
|
||
| 18.08.2010, 13:05 | ||
|
в Си++ вообще лучше пользоваться классами.
1
|
||
|
2348 / 1721 / 149
Регистрация: 06.03.2009
Сообщений: 3,675
|
||
| 18.08.2010, 13:49 | ||
|
Если набор данных не имеет собственного поведения лучше его оформить в виде структуры.
0
|
||
|
Мат в 32 хода
237 / 172 / 18
Регистрация: 10.09.2009
Сообщений: 1,096
|
|
| 18.08.2010, 16:49 | |
|
CyBOSSeR, а можно в структурах объявлять функции?
0
|
|
|
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
|
|||
| 18.08.2010, 16:54 [ТС] | |||
|
Добавлено через 2 минуты Только я вот не уверен, точнее не знаю, имеет ли структура конструктор. Подозреваю, что нет. Ошибся))
Вообще вот ссылка на MSDN по этому вопросу. Если вдруг кому-то пригодится, как мне.
2
|
|||
|
4340 / 1509 / 101
Регистрация: 12.04.2009
Сообщений: 2,342
|
|
| 18.08.2010, 16:59 | |
|
half-node, там про структуры CLR
0
|
|
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
|||||||
| 18.08.2010, 17:00 | |||||||
Сообщение было отмечено как решение
Решение
3
|
|||||||
|
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
|
||
| 18.08.2010, 17:04 [ТС] | ||
|
easybudda, спасибо! Буду знать. Только вот теперь вообще я потерялся в смысле существования класса, если есть структура, которая поддерживает все тоже самое.
0
|
||
|
Модератор
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
|
||||||
| 18.08.2010, 17:10 | ||||||
|
half-node, просто считайте синонимами объявления
0
|
||||||
|
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
|
|
| 18.08.2010, 17:15 [ТС] | |
|
А зачем пользоваться типом struct, если есть эквивалентный class?
0
|
|
|
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
|
||
| 18.08.2010, 17:28 | ||
|
0
|
||
|
23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
|
||
| 18.08.2010, 17:31 [ТС] | ||
|
0
|
||
|
|
||
| 19.08.2010, 17:52 | ||
|
Не только в обьявлениях внутренных членов, но и при наследовании. В остальном - абсолютно идентичны (в С++ ) Смысл закрытости по умолчанию в том, что бы дизайнер на автомате не открывал всевозможные данные, а предоставлял интерфейс только к тому, что надо. Кроме того, само название struct указывает, что речь идёт о структуре данных и все. class - это обобщение некоего обьекта, у к-рого есть поведение и т.д.
0
|
||
|
5 / 6 / 4
Регистрация: 18.11.2009
Сообщений: 661
|
|
| 27.07.2011, 23:47 | |
|
Не знаю, если отвлечься от формализма. По существу по-моему класс отличается от структуры - наличием методов и может быть свойств. И может быть событий, хотя в ANSI C++ события специально не поддерживаются. Хотя как писалось ниже в С++ можно в структуры включать функции, считаю это излишней вольностью.
По моему объект предметной обласnи описывается классом на С++ только если у него есть какой-то метод (функция) меняющая его свойства или создающая новое свойство). Вот по этой то причине я мучался с классами представляющими модель квартира-комнаты. В самом деле свойств дофига, а хоть один метод? Если отвлечься от тривиальных - расчет кубатуры по размерам комнаты. Если не интересоваться скажем процессами включения/выключения света как в некот учебн примерах классов - то вроде ничего. Ну может по смыслу задачи подойдет метод -прописка чел на жилплощади.
1
|
|
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
||||||
| 28.07.2011, 01:37 | ||||||
|
структуры больше походят для простых сущностей например
1
|
||||||
| 28.07.2011, 01:37 | |
|
Помогаю со студенческими работами здесь
20
Разница между классами и структурами и другие моменты Отличия между ++value и value++ Отличия между видеокартами Отличия между книгами Отличия между DVD Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|