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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 39, средняя оценка - 4.90
grrrrr
 Аватар для grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
12.08.2011, 13:52     Для чего нужны вложенные структуры? #1
Скажите пожалуйста для чего нужны вложенные структуры и где их используют?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.08.2011, 13:52     Для чего нужны вложенные структуры?
Посмотрите здесь:

Для чего нужны callback-функции C++
C++ Понимание для чего вообще нужны указатели?
C++ Для чего нужны указатели на функции?
C++ для чего нужны хеш таблицы?
try catch throw для чего нужны? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
An1ka
65 / 70 / 2
Регистрация: 30.06.2011
Сообщений: 176
12.08.2011, 13:55     Для чего нужны вложенные структуры? #2
Для внутреннего использования. Например, какой-то тип данных внутри класса представить в виде структуры.
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
12.08.2011, 15:09     Для чего нужны вложенные структуры? #3
Как пример: очень удобно внутри класса List описать класс ListNode, поскольку узел списка отдельно от списка никому не нужен, а завернуть цепочку узлов в один класс List очень удобно.
grrrrr
 Аватар для grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
12.08.2011, 15:17  [ТС]     Для чего нужны вложенные структуры? #4
silent_1991, я плохо знаю что такое списки и очереди, в общем понимаю как это работает, но когда вижу реализацию ничего не понимаю. От структурного программирования С++ в ООП я перешел недавно, наверное, поэтому мне так сложно.
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
12.08.2011, 15:19     Для чего нужны вложенные структуры? #5
Когда-то давным-давно... Когда деревья были большими, а трава - зеленая, был такой язык С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, я плохо знаю что такое списки и очереди, в общем понимаю как это работает, но когда вижу реализацию ничего не понимаю. От структурного программирования С++ в ООП я перешел недавно, наверное, поэтому мне так сложно.
И в структурном программировании есть вложенные структуры.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
12.08.2011, 15:20     Для чего нужны вложенные структуры? #6
Цитата Сообщение от ValeryLaptev Посмотреть сообщение
И в структурном программировании есть вложенные структуры.
Так структура это класс, а класс это ООП...
grrrrr
 Аватар для grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
12.08.2011, 15:23  [ТС]     Для чего нужны вложенные структуры? #7
ValeryLaptev, видимо мне нужна практика, т.к. со вложенными структурами я еще ничего не делал, а с простыми структурами пару примеров делал. Всем спасибо за отклик, ушел набираться опыта!
silent_1991
Эксперт C++
4938 / 3014 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
12.08.2011, 15:24     Для чего нужны вложенные структуры? #8
diagon, в структурном программировании структура классом быть никак не может по одной простой причине: в структурном программировании не существует понятия класс.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
12.08.2011, 15:27     Для чего нужны вложенные структуры? #9
Цитата Сообщение от silent_1991 Посмотреть сообщение
diagon, в структурном программировании структура классом быть никак не может по одной простой причине: в структурном программировании не существует понятия класс.
Т.е. используется чисто как хранилище для нескольких переменных одновременно? Просто я у Страуструпа читал, что структура - вид класса с другим доступом по умолчанию.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
12.08.2011, 15:32     Для чего нужны вложенные структуры? #10
diagon, В С++ да. В Си нет.
ValeryLaptev
Эксперт C++
1005 / 784 / 46
Регистрация: 30.04.2011
Сообщений: 1,595
12.08.2011, 15:35     Для чего нужны вложенные структуры? #11
Цитата Сообщение от diagon Посмотреть сообщение
Так структура это класс, а класс это ООП...
Это в С++ структура - класс. А в Компонентном паскале - вовсе не класс, а запись... А хочешь, чтоб она классом стала - напиши, что от нее можно наследоваться...
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
12.08.2011, 16:28     Для чего нужны вложенные структуры? #12
Цитата Сообщение от diagon Посмотреть сообщение
Т.е. используется чисто как хранилище для нескольких переменных одновременно?
В С++ структуры оставили только ради совместимости с Си, то есть, чтобы некоторый сишный код компилировался компилятором С++. Собственно, поэтому по-умолчанию в структурах public, а не private.
Kastaneda
12.08.2011, 16:32
  #13

Не по теме:

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

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

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.08.2011, 06:00     Для чего нужны вложенные структуры?
Еще ссылки по теме:

что такое векторы и для чего нужны!? C++
Для чего нужны интерфейсы? C++
Для чего нужны виртуальные функции и виртуальное наследование ? C++

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

Или воспользуйтесь поиском по форуму:
accept
4838 / 3237 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
13.08.2011, 06:00     Для чего нужны вложенные структуры? #14
Цитата Сообщение от grrrrr
Скажите пожалуйста для чего нужны вложенные структуры и где их используют?
с помощью вложенных структур можно собирать сложные объекты

в K&R2 пример про точки:
C
1
2
3
4
5
6
7
struct point {
    int x, y;
};
 
struct rect {
    struct point pt1, pt2;
};
прямоугольник - это структура, содержащая две точки (левый нижний угол и правый верхний)
точка - это структура, содержащая две координаты
Yandex
Объявления
13.08.2011, 06:00     Для чего нужны вложенные структуры?
Ответ Создать тему
Опции темы

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