Есть общий для всех класс
class TObject{...}
От него имеем две ветки потомков
class TSimple: public TObject{..}
1-я ветка.
class TSelf1_1: public TSimple{..}
class TSelf1_2: public TSelf1_1{..}
2-я ветка.
class TSelf2_1: public TSimple{..}
Пытаюсь организовать поиск объекта по его типу для этого пользую динамическое приведение
//-- Тип искомого объекта.
type_info *find_type;
find_type = (type_info*)(&typeid(TSelf1_2*));
...
В процедуре сравнения типов
на момент сравнения ps - указатель на объект типа TSelf2_1
TObject *ps;
if (find_type == &typeid(dynamic_cast(ps)))
{
return ps;
}
else
{
return NULL;
}
И вот эта конструкция &typeid(dynamic_cast(ps)), каким-то образом умудряется привести объект типа TSelf2_1 к объекту типа TSelf1_2.Вот теперь ломаю голову как такое возможно? Может великие гуру подскажут что-нить дельное?