Re: Возможно ли по указателю типа void узнать на объект како
От: antidotcb Украина  
Дата: 12.10.06 18:43
Оценка: -1
Здравствуйте, Phoenics, Вы писали:

P>Уважаемые граждане форумчане, тут вот такя задачка подвернулась.


P>Дано: Есть указатель void *ptr; Известно что этот указатель указывает на реально существующий объект какого-то класса АА, так же известно что любой из классов АА является потомком класса А.


P>Нужно: 1. По указателю ptr узнать реальный тип объекта, привести указатель ptr к этому типу и...

P>2. вызвать метод класса АА, унаследованный им от класса А;

P>Ну второе-то вроде просто если выполнить первое


P>Вопрос: Возможно ли такое проделать вообще? Т.е. возможно ли по указателю типа void узнать на объект какого типа он указывает?


P>Зарание благодарен.


ну если ты уверен что по этому указателю всегда будет потомок или экземляр класса А, то добавь функцию в класс А, который будет возвращать тип объекта, и переопределяй её во всех потомках. по мойму проще пареной репы. второе следует из первого, а вообще если уверен что там указатель на потомок или экземпляр класса а , то сразу делай так

   A *a = dynamic_cast<A *>(ptr);
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.