|
24 / 24 / 3
Регистрация: 17.05.2011
Сообщений: 141
|
|||||||||||
Наследование и полиморфизм...09.04.2012, 12:42. Показов 2268. Ответов 10
Метки нет (Все метки)
Есть спецы в этой теме?)
Сейчас пишу курсовую, в методичке (препод сильно снижает за отклонения от инструкций) сказано создать базовый класс, сделать ему 2х потомков... хорошо сделал, но у этого класса есть интересный конструктор...
пробовал разбивать на файлы в результате или базовый клас считается необъявленным, или потомки... подскажите пожалуйста как организовать, точнее для начала возможно ли это, если да, то как?
0
|
|||||||||||
| 09.04.2012, 12:42 | |
|
Ответы с готовыми решениями:
10
Наследование и полиморфизм. Наследование и полиморфизм Полиморфизм, наследование |
|
|
|||||||
| 09.04.2012, 13:04 | |||||||
|
Во первых ты вообще осознаёшь, что таким действием ты рекурсивно запускаешь бесконечный конструктор базового класса??? Потому что перед тем как сделать mybase(bool id){ tmp = new p1} конструктор p1 вызовется сначала вызвав конструктор своего родителя??? И мы зациклемся как минимум. А вообще, это ошибка, конечно. Во-вторых, базовый класс вообще в большинстве случаев не должен много знать о своих потомках. Чаще всего он создаёт какой-то единый интерфейс для обращения с ними. Добавлено через 13 минут Но скорее всего даже до рекурсии дело не дойдёт - просто не скомпилируется На будущее, хочешь выбирать, что создать, в указателе, одного потомка или другого. Решай это там, где ты выделяешь под них память с помощью new то есть
0
|
|||||||
|
24 / 24 / 3
Регистрация: 17.05.2011
Сообщений: 141
|
||
| 09.04.2012, 13:06 [ТС] | ||
|
Да, действительно, обычно базовый класс организует только общий интерфейс... А теперь еще раз вопрос: "Точно не получится организовать нечто подобное?".
0
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 09.04.2012, 13:06 | |
|
Предок не должен ничего знать о потомках.
0
|
|
|
24 / 24 / 3
Регистрация: 17.05.2011
Сообщений: 141
|
|
| 09.04.2012, 13:08 [ТС] | |
|
0
|
|
|
|
||
| 09.04.2012, 13:12 | ||
|
Да, пустого конструктора я не заметил
0
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 09.04.2012, 13:14 | |
|
Так делать нельзя, всякое знание предка о потомках есть концептуальная ошибка. Другое дело знание объекта формально базового класса о своём фактическом классе, вот это как раз норма и основа всякого полиморфизма.
0
|
|
|
60 / 60 / 7
Регистрация: 16.05.2010
Сообщений: 632
|
|||||||
| 09.04.2012, 13:15 | |||||||
0
|
|||||||
|
24 / 24 / 3
Регистрация: 17.05.2011
Сообщений: 141
|
||
| 09.04.2012, 20:41 [ТС] | ||
|
Спасибо, Домовенок и Тарас.
т.е. есть несколько классов, у базового указана какая - то переменная, являющаяся константой для потомков (для перого - 1, второго - 2...). или метода, который возвращает подобную константу.
0
|
||
|
|
||
| 09.04.2012, 20:57 | ||
|
То есть объект базового класса всё что теоретически может сказать - это только своё имя. virtual int get_id(){return 1;/*признак класса base*/}
0
|
||
|
24 / 24 / 3
Регистрация: 17.05.2011
Сообщений: 141
|
|
| 09.04.2012, 21:13 [ТС] | |
|
понятно, спасибо.)
хотя препод вроде шарит...чего он хотел сказать написав это в методичке...((
0
|
|
| 09.04.2012, 21:13 | |
|
Помогаю со студенческими работами здесь
11
Наследование и полиморфизм Полиморфизм, наследование
ООП Полиморфизм Наследование Наследование и полиморфизм классов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит:
токи, напряжения и их 1 и 2 производные при t = 0;. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|