|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.09.2008, 14:21 | #1 |
Пользователь
Регистрация: 25.09.2008
Сообщений: 40
|
Полиморфизм. Пример.
Вобщем есть пример: http://subscribe.ru/archive/comp.sof.../30154843.html
там рассказывается про такой способ задания объекта класса: Truck * truck = (Truck*)(new Car); Может кто-нибудь объяснить как это надо понимать? |
27.09.2008, 15:13 | #2 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
Учитывая, что Car - родитель, а Truck - его наследник, бред какой-то получается. Ни разу так не делал и не знаю ситуацию, когда это необходимо. К тому же это может привести к неявным ошибкам.
Например в классе truck добавляется свойство "int Kuzov". new Car это свойство не создаст и вероятно будет access violation при попытке доступа к нему, после подобных преобразований типа. Данный пример, на мой взгляд - это как смастерить табуретку и сказать слепому человеку, что это стул. Сидеть на ней он будет нормально, но при попытке облокотиться на спинку, упадёт. Последний раз редактировалось pu4koff; 27.09.2008 в 15:16. |
27.09.2008, 16:10 | #3 | |
Новичок
Джуниор
Регистрация: 26.08.2008
Сообщений: 1,010
|
Цитата:
Track* truck = dynamic_cast<(Truck*)>(new Car) мне кажется приведение типов лучше проводить так - ибо понятнее. з.ы. пример, на который ты указал - не очень :/
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими. |
|
27.09.2008, 16:26 | #4 | |
Пользователь
Регистрация: 25.09.2008
Сообщений: 40
|
Цитата:
Код:
Последний раз редактировалось Scratch; 27.09.2008 в 16:39. |
|
27.09.2008, 16:47 | #5 | |
Новичок
Джуниор
Регистрация: 26.08.2008
Сообщений: 1,010
|
Цитата:
ромик0: Cколько получают здешние модераторы?
pu4koff: У модераторов сдельная оплата труда. Выдал предупреждение - плюс к премии. Выдал бан - лучший модератор месяца со всеми вытекающими. |
|
27.09.2008, 16:52 | #6 |
Пользователь
Регистрация: 25.09.2008
Сообщений: 40
|
|
27.09.2008, 17:02 | #7 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
func описать как виртуальный метод
|
27.09.2008, 17:05 | #8 |
Пользователь
Регистрация: 25.09.2008
Сообщений: 40
|
|
27.09.2008, 17:09 | #9 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
как-то так вроде:
Код:
|
27.09.2008, 17:32 | #10 | |
Пользователь
Регистрация: 25.09.2008
Сообщений: 40
|
Цитата:
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
П Р О С Т Е Й Ш И Й пример 3D | aesoem | Gamedev - cоздание игр: Unity, OpenGL, DirectX | 3 | 16.07.2008 16:54 |
Пример из учебника | valerij | Microsoft Office Excel | 11 | 20.06.2008 15:43 |
Пример патчинга | Д'якон | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 17.02.2008 19:27 |
пример парсинга | Stanislav | Общие вопросы Delphi | 4 | 14.01.2008 03:48 |