![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 08.11.2009
Сообщений: 16
|
![]()
Как в базовом классе описать указатель на производный класс?
Вот пример написал. Код:
Последний раз редактировалось MasterGH; 16.11.2009 в 01:30. Причина: Другая формулировка вопроса |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
Уж извините, но слегка извращённые у вас примеры)) Каков смысл в базовом классе, когда он привязан к конкретному производному?) Может я не в курсе некоторых деталей и на деле это всё часть Великого Замысла, но всё же...)
По теме: Таким способом обратится нельзя, создавать объект класса можно только после его декларации. В данном случае можно воспользоваться шаблонами, чтобы сделать так как Вам надо. Ещё одно замечание: this - это указатель, он имеет тип Base* const, то есть брать его адрес не надо Код:
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 08.11.2009
Сообщений: 16
|
![]()
netrino, спасибо огромное, если бы я знал как повысить Вам рейтинг обязательно бы сделал. С Вашей помощью я вылажу из тупиковых ям, над которыми бьюсь около часа и более.
Пример весьма прост - в базовом классе надо вывести информацию о том какой игрок в данный момент стрелял и перезаряжался. проблемные места я отметил в комментариях знаками !!!! Код:
Последний раз редактировалось MasterGH; 16.11.2009 в 01:50. |
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
Хмм... На мой взгляд тут немного не правильно разделены сущности.
Как говорится, убивает не оружие, убивают люди ![]() То есть класс Оружие не должен знать ничего о том, кто из него стреляет, подобные ф-ции, ИМХО, должны быть возложены на класс Игрок. Более того, наследование Игрока от Оружия тоже несколько смущает, скорее у класса Игрок должно быть поле типа Оружие, такое же, как, например, поле типа Защита, Рюкзак или ещё что угодно. Я это всё к тому, что вряд ли кто-то проектирует такую иерархию классов на практике ) хотя всяко быть может, сам я играми не занимался, потому в этой области не очень =) Вообще говоря я встречал и сам использовал такой способ получения информации в базовом классе из производного, но это были либо адреса статических ф-ций, либо значения перечислений, то есть они не были привязаны к конкретному объекту, обычно можно обойтись без этого, например введением поля в protected секции, которое и будет заполнять производный класс. Код:
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Если в классе объявить объект другого класса,будет ли видно переменные первого класса из объекта второго? | TwiX | Общие вопросы Delphi | 3 | 15.11.2009 00:54 |
арифметика класса + объект this | Nitrino | Общие вопросы C/C++ | 4 | 19.10.2009 21:00 |
Как узнать, создавался ли уже объект класса? | TwiX | Общие вопросы Delphi | 4 | 06.10.2009 09:44 |
объект класса TBItmap | albatros | Мультимедиа в Delphi | 3 | 27.03.2009 16:23 |
как использовать указатель this | z3rg | Общие вопросы C/C++ | 2 | 16.03.2009 23:28 |