Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/41: Рейтинг темы: голосов - 41, средняя оценка - 4.56
 Аватар для grrrrr
49 / 49 / 13
Регистрация: 21.04.2009
Сообщений: 265

Для чего нужны вложенные структуры?

12.08.2011, 13:52. Показов 8125. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Скажите пожалуйста для чего нужны вложенные структуры и где их используют?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.08.2011, 13:52
Ответы с готовыми решениями:

Для чего нужны указатели?
Кто может объяснить для чего нужны указатели и смысл их? в интернете одна муть и еще для чего нужно new delete

Для чего нужны интерфейсы?
Объясните на пальцах для чего нужны интерфейсы, как я понял они описывают методы и свойства, которые при наследовании классами должны были...

Для чего нужны callback-функции
Для чего нужны callback-функции? И можно привести какой-нибуль пример по их использованию.

13
71 / 76 / 9
Регистрация: 30.06.2011
Сообщений: 176
12.08.2011, 13:55
Для внутреннего использования. Например, какой-то тип данных внутри класса представить в виде структуры.
1
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
12.08.2011, 15:09
Как пример: очень удобно внутри класса List описать класс ListNode, поскольку узел списка отдельно от списка никому не нужен, а завернуть цепочку узлов в один класс List очень удобно.
1
 Аватар для grrrrr
49 / 49 / 13
Регистрация: 21.04.2009
Сообщений: 265
12.08.2011, 15:17  [ТС]
silent_1991, я плохо знаю что такое списки и очереди, в общем понимаю как это работает, но когда вижу реализацию ничего не понимаю. От структурного программирования С++ в ООП я перешел недавно, наверное, поэтому мне так сложно.
0
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
12.08.2011, 15:19
Когда-то давным-давно... Когда деревья были большими, а трава - зеленая, был такой язык Сobol (jy и сейчас есть, но про него мало кто помнит)...
На этом языке писали программы обработки данных.
Структура обрабатываемой записи на этом языке выглядела вот таким образом:
HTML5
1
2
3
4
5
6
7
8
9
10
11
* 01 StudentDetails
*    02  StudentId       PIC 9(7).
*    02  StudentName.
*        03 Surname      PIC X(8).
*        03 Initials     PIC XX.
*    02  DateOfBirth.
*        03 YOBirth      PIC 9(4).
*        03 MOBirth      PIC 9(2).
*        03 DOBirth      PIC 9(2).
*    02  CourseCode      PIC X(4).
*    02  Gender          PIC X.
Каждый уровень - это вложенная структура.
Аналогичный1 вид имели и структуры в PL-1.
Потом от идеи нумерации уровней отказались, но вложенные-то структуры, как вы понимаете, остались...

Добавлено через 55 секунд
Цитата Сообщение от grrrrr Посмотреть сообщение
silent_1991, я плохо знаю что такое списки и очереди, в общем понимаю как это работает, но когда вижу реализацию ничего не понимаю. От структурного программирования С++ в ООП я перешел недавно, наверное, поэтому мне так сложно.
И в структурном программировании есть вложенные структуры.
1
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
12.08.2011, 15:20
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
И в структурном программировании есть вложенные структуры.
Так структура это класс, а класс это ООП...
0
 Аватар для grrrrr
49 / 49 / 13
Регистрация: 21.04.2009
Сообщений: 265
12.08.2011, 15:23  [ТС]
ValeryLaptev, видимо мне нужна практика, т.к. со вложенными структурами я еще ничего не делал, а с простыми структурами пару примеров делал. Всем спасибо за отклик, ушел набираться опыта!
0
Эксперт С++
5058 / 3118 / 271
Регистрация: 11.11.2009
Сообщений: 7,044
12.08.2011, 15:24
diagon, в структурном программировании структура классом быть никак не может по одной простой причине: в структурном программировании не существует понятия класс.
1
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
12.08.2011, 15:27
Цитата Сообщение от silent_1991 Посмотреть сообщение
diagon, в структурном программировании структура классом быть никак не может по одной простой причине: в структурном программировании не существует понятия класс.
Т.е. используется чисто как хранилище для нескольких переменных одновременно? Просто я у Страуструпа читал, что структура - вид класса с другим доступом по умолчанию.
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
12.08.2011, 15:32
diagon, В С++ да. В Си нет.
1
Эксперт С++
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
12.08.2011, 15:35
Цитата Сообщение от diagon Посмотреть сообщение
Так структура это класс, а класс это ООП...
Это в С++ структура - класс. А в Компонентном паскале - вовсе не класс, а запись... А хочешь, чтоб она классом стала - напиши, что от нее можно наследоваться...
1
Эксперт С++
 Аватар для fasked
5045 / 2624 / 241
Регистрация: 07.10.2009
Сообщений: 4,310
Записей в блоге: 5
12.08.2011, 16:28
Цитата Сообщение от diagon Посмотреть сообщение
Т.е. используется чисто как хранилище для нескольких переменных одновременно?
В С++ структуры оставили только ради совместимости с Си, то есть, чтобы некоторый сишный код компилировался компилятором С++. Собственно, поэтому по-умолчанию в структурах public, а не private.
2
12.08.2011, 16:32

Не по теме:

Цитата Сообщение от diagon Посмотреть сообщение
а класс это ООП...
Ой ли?;)

Есть еще т.н. объектно базированное программирование. Все мы читали, что до того как С++ стал С++ (си плюс плюсом) он назывался "Си с классами", который ни какого отношение к ООП не имел, это и было то самое ОБП.
В общем не все, что с классами есть ООП:read:

1
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
13.08.2011, 06:00
Цитата Сообщение от grrrrr
Скажите пожалуйста для чего нужны вложенные структуры и где их используют?
с помощью вложенных структур можно собирать сложные объекты

в K&R2 пример про точки:
C
1
2
3
4
5
6
7
struct point {
    int x, y;
};
 
struct rect {
    struct point pt1, pt2;
};
прямоугольник - это структура, содержащая две точки (левый нижний угол и правый верхний)
точка - это структура, содержащая две координаты
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
13.08.2011, 06:00
Помогаю со студенческими работами здесь

Для чего нужны статические массивы?
Никак не могу понять, для чего они нужны в программировании, ведь есть динамические и их можно сделать константными , чтобы не менялся...

для чего нужны хеш таблицы?
для чего нужны хеш таблицы? если есть массивы )

Для чего нужны заголовочные файлы?
Ещё раз всем здрасьте , последний вопрос в котором я не могу разобраться - Для чего нужны заголовочные файлы ??? Для чего нужны эти файлы...

Для чего нужны указатели на функции?
для чего нужны эти указатели на функции... не проще ли вызвать саму функцию, чем заводить под нее указатель и им пользоваться...

Для чего нужны файлы с расширением .h, .c?
Не подскажите, для чего нужен (.h) и (.c) файл? А (.cpp)? Я читал, что это заголовочный файл, но за зачем он нужен?


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru