|
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
|
||||||
Создание класса в другом классе27.10.2016, 16:40. Показов 12137. Ответов 23
Метки нет (Все метки)
Приветствую всех. Уважаемые гуру, скажите можно ли создавать класс в теле друго класса? Причем создание "внутреннего" класса идет на основании класса родителя. Код примерно такой:
0
|
||||||
| 27.10.2016, 16:40 | |
|
Ответы с готовыми решениями:
23
Объект класса в другом классе Вызвать метод класса в другом классе |
|
Вездепух
13198 / 6833 / 1822
Регистрация: 18.10.2014
Сообщений: 17,293
|
|
| 27.10.2016, 17:21 | |
|
1
|
|
|
2549 / 1208 / 358
Регистрация: 30.11.2013
Сообщений: 3,826
|
|
| 27.10.2016, 17:23 | |
|
d7d1cd, название у данного подхода -
Nested class c++
1
|
|
|
Комп_Оратор)
|
||||||||
| 27.10.2016, 23:53 | ||||||||
|
Я жуть как удивился. Ведь наследник ЭТО родитель ( IS ). То есть, следуя общему правилу, невозможности рекурсивных определений для типов (можно указатель лишь на себя определить) не должно скомпилироваться. Попробовал и точно:
![]() Пробовал гуглить сначала, но только в в Wiki нашёл в начледовании для шарпа. Там разрешено включать класс наследник. Но это не C++. ![]() https://ru.wikipedia.org/wiki/... 0%B8%D0%B5)
0
|
||||||||
|
82 / 82 / 44
Регистрация: 14.07.2013
Сообщений: 410
|
|
| 27.10.2016, 23:55 | |
|
IGPIGP, там другой класс в качестве базового
1
|
|
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
|||||||
| 28.10.2016, 02:35 | |||||||
4
|
|||||||
|
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
|
||||||
| 28.10.2016, 08:11 [ТС] | ||||||
|
Еще вопрос. Чтобы написать реализацию функции внутреннего класса надо указать сначала внешний класс, потом внутренний, потом саму функцию?
0
|
||||||
|
Комп_Оратор)
|
||||||
| 28.10.2016, 10:24 | ||||||
|
Renji, я понимаю, что вопрос чисто теоретический, так как наследование обычно сильно именно публичным наследование с виртуальным полиморфизмом, а вложенность отражает намерение скрыть тип. И такое противоречие не может не порождать проблем. Или я опять не знаю как выйти из ситуации или наследование во вложенном классе от внешнего класса проблематично в части использования наследника в себе же. Поскольку тема не совсем соответствует старту, - под спойлер:
Кликните здесь для просмотра всего текста
d7d1cd, тут немножко есть про обращение к методам вложенного класса. Совет: создайте сначала объект вложенного класса для обращения к его нестатическим методам. Для обращения к статическим - через полную квалификацию имён от внешнего класса. И да, всё должно быть public.
0
|
||||||
|
2784 / 1937 / 570
Регистрация: 05.06.2014
Сообщений: 5,602
|
||
| 28.10.2016, 10:44 | ||
|
0
|
||
|
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
|
||
| 28.10.2016, 10:51 [ТС] | ||
|
0
|
||
|
Комп_Оратор)
|
|||
| 28.10.2016, 11:04 | |||
0
|
|||
|
|
|||||||
| 28.10.2016, 12:35 | |||||||
|
Хотя подобным образом удобно использовать структуры вложенные в класс для группировки членов класса.
0
|
|||||||
|
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
|
|
| 12.07.2017, 14:21 [ТС] | |
|
Возник вопрос по текущей теме вложенных классов, а проверить не могу - компилятора нет под рукой. Подскажите, доступны ли переменные внешнего класса из функций его вложенного класса?
0
|
|
|
Комп_Оратор)
|
||
| 12.07.2017, 16:34 | ||
![]() К переменным в смысле - объектам и сам класс не может (своими статическими методами). Их надо передавать (объекты).
0
|
||
|
Вездепух
13198 / 6833 / 1822
Регистрация: 18.10.2014
Сообщений: 17,293
|
||
| 12.07.2017, 18:52 | ||
|
Права доступа к полям внешнего класса у вложенного класса есть.
0
|
||
|
279 / 156 / 52
Регистрация: 30.06.2011
Сообщений: 1,712
|
||||||||
| 12.07.2017, 19:46 [ТС] | ||||||||
HeirFoo к переменной MajorData?
0
|
||||||||
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
|||||||
| 12.07.2017, 20:09 | |||||||
2
|
|||||||
|
Комп_Оратор)
|
|||
| 12.07.2017, 20:28 | |||
|
1
|
|||
|
Вездепух
13198 / 6833 / 1822
Регистрация: 18.10.2014
Сообщений: 17,293
|
|||
| 12.07.2017, 20:57 | |||
|
Из того, что у вас есть права на вождение автомобиля, совсем не следует, что у вас уже есть автомобиль. Автомобиль вам все таки придется добывать самому, отдельно. У вас может быть целый ящик разных прав на вождение автомобиля, но если у вас нет самого автомобиля, то водить вам будет нечего. У вложенного класса есть права на доступ к полям внешнего класса. Но сначала вложенному классу надо получить объект этого внешнего класса, к полям которого он будет доступаться. У вас в коде никакого объекта внешнего класса нет вообще. Поэтому и доступаться вам не к чему. Об этом вам и говорит компилятор. MajorData существуют только внутри объектов типа TMajor. Где ваш объект типа TMajor, к полю MajorData которого вы хотите доступиться из HeirFoo()? Если нет объекта, то и доступаться не к чему.
1
|
|||
| 12.07.2017, 20:57 | |
|
Помогаю со студенческими работами здесь
20
Массив элементов класса в другом классе Использование объектов класса в другом классе Вызов динамического аргумента класса в другом классе
Использование данных одного класса в другом классе Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . .
а удачный момент так и не приходит.
|
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица.
Задача: зафиксировать три левых колонки в отчете.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
/ / . . .
|
Настройки VS Code
Loafer 13.04.2026
{
"cmake. configureOnOpen": false,
"diffEditor. ignoreTrimWhitespace": true,
"editor. guides. bracketPairs": "active",
"extensions. ignoreRecommendations": true,
. . .
|
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2.
Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива.
Было так:. . .
|
|
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: реализовать контроль корректности заполнения дат назначения. . .
|
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2.
Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
|
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях.
Задача: при копировании документа очищать определенные реквизиты и табличную. . .
|