Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс. e-mail:jobsmp@pochta.ru |
class TSimple;
class TFolder: TSimple;
class TFolder1: TSimple;
class TDevice: TSimple;
//-- Вот допустим мои объекты
TSimple Simple;
TFolder Folder;
TFolder1 Folder1;
TDevice Device;
есть функция у меня
find_object(TDIRECTION direction, const type_info *ti, BOOL with_this, BOOL open_source);
Пусть я хочу выполнить поиск среди моих объектов ну допустим всех TSimple.
Делаю следующее.
find_object(.., &typeid(TSimple), .., ..) - Здесь все нормально. Передаю в функцию указатель на описание типа.
Эта функция начинает поиск берет к примеру Simple и сравнивает типы:
typeid(Simple) = ti ? Резльтат истина.
А вот
typeid(Folder) = ti ? Даст FALSE
Есть оператор динамического приведения типа выглядит
dynamic_cast т.е. если я сделаю PSimple ptr; ptr = dynamic_cast typeid(ptr) = ti ? даст TRUE. А если в следующий раз я захочу искать TFolder, то как в
ptr = dynamic_cast
Ответы