|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
21.10.2012, 18:50 | #1 |
любитель-далеко не
Участник клуба
Регистрация: 13.04.2010
Сообщений: 1,156
|
си++ - "совместимость" класса-родителя и его потомка
Доброго времени суток)
Друзья. подскажите пожалуйста - допустимо ли вместо родителя в си++ "использовать" наследника - подобным образом : Код:
Да - конечно - это не праздный вопрос - просто студия от мелкомягких говорит, что судя по всему нельзя - но там у меня более навороченая иерархия классов - потому я спрашиваю на простом примере. Пожалуйста подскажите_ Заранее благодарю за ответ) |
21.10.2012, 19:05 | #2 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Код:
А вот насчет эстетической стороны вопроса это уже труднее вот так вот с потолка сказать.
I'm learning to live...
|
|
21.10.2012, 19:21 | #3 |
любитель-далеко не
Участник клуба
Регистрация: 13.04.2010
Сообщений: 1,156
|
опять слабый мозг не справился с понимаем концепции указателей и звёзд в си++....
Stilet , прокомментируйте пожалуйста наличие звезды = Код:
или нет... но с точки зрения совместимости я "угадал"... просто пишу ООП-иллюстрацию работы с классами - и там класс компьютер "агрегирует" класс "процессор" - потому удобно прописать в качестве стандартного параметра "родитель всех процессоров" , а уж в качестве конкретного параметра передавать объект конкретного класса - с большим числом составных элементов (полей-методов) |
21.10.2012, 19:33 | #4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
P.S. Кстати то что ты хочешь по-моему в таком ракурсе не имеет смысла, ибо наследник имеет доступ ко всем public полям класса.
I'm learning to live...
Последний раз редактировалось Stilet; 21.10.2012 в 19:41. |
|
21.10.2012, 19:49 | #5 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
присвоить обьект класса A, обьекту класса B(B родитель A) нельзя.
ибо физически это разные данные. при работе со ссылками или указателями это реально. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
21.10.2012, 19:50 | #6 | |||
любитель-далеко не
Участник клуба
Регистрация: 13.04.2010
Сообщений: 1,156
|
Цитата:
тогда чтобы указателю присвоить указатель надо написать = Код:
Код:
Цитата:
Цитата:
Последний раз редактировалось vedro-compota; 21.10.2012 в 19:53. |
|||
21.10.2012, 20:01 | #7 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
По факту объекты это 4-байтовые указатели, и теоретически можно один указатель заменить другим. На практике это попахивает граблями, но не запрещено как таковое.
I'm learning to live...
|
||
21.10.2012, 20:11 | #8 | ||
любитель-далеко не
Участник клуба
Регистрация: 13.04.2010
Сообщений: 1,156
|
Цитата:
Цитата:
|
||
21.10.2012, 20:24 | #9 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
неявное преобразование по иерархии автоматически несуществует.
ибо разные классы имеют разные поля и тп. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
21.10.2012, 20:33 | #10 | |
любитель-далеко не
Участник клуба
Регистрация: 13.04.2010
Сообщений: 1,156
|
Цитата:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создать класс "Фигура", от него наследованием создать 3 класса ("треугольник", "четырехугольник", "окружность") | funnyy | Помощь студентам | 3 | 17.10.2012 17:40 |
Определение "Родителя" в иерархичском списке | Radzhab | Microsoft Office Excel | 7 | 18.09.2012 18:09 |
Одинаковый хендл у "родителя" и "ребенка" | Alex Cones | Общие вопросы Delphi | 7 | 12.05.2010 10:49 |
Помогите пожайлуста найти, кто человек "вконтакте", зная его "мэйл" | Аксюнька1990 | Помощь студентам | 1 | 12.06.2009 06:16 |
Delphi. Создание нового класса, его "предков". | Krechet | Помощь студентам | 0 | 26.04.2009 15:52 |