Как узнать, какой тип объекта указывает на указатель базового класса? - PullRequest
0 голосов
/ 10 марта 2012

У меня есть базовый класс с именем Cell (другой класс имеет указатель на объект этого класса) и 3 производных класса CellA, CellB и CellC.Когда ячейка мертва, указатель указывает на ячейку, в другом случае он жив (A, B или C).Как узнать, что указывает этот указатель в этот момент, чтобы действовать ??

Ответы [ 3 ]

1 голос
/ 10 марта 2012

Может быть, вам нужна немного другая логика, взгляните на шаблон проектирования состояний, я думаю, он может вам помочь.Обычно кастинг это плохо, и его следует избегать.Если вам нужен кастинг, то у вас, вероятно, проблема с дизайном ....

Удачи

1 голос
/ 10 марта 2012

Если ваши классы полиморфны, вы можете использовать dynamic_cast .
dynamic_cast позволяет безопасно убирать указатели.
В вашем случае вы можете использовать dynamic_cast, чтобы проверить, указывает ли указатель базового класса на производный экземпляр, dynamic_cast может сообщить вам эту информацию.

0 голосов
/ 10 марта 2012

используйте dynamic_case или typeid(), чтобы узнать объект во время выполнения ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...