Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Проверка типа объекта в С++


Автор: -= Demon =- 4.10.2002, 22:51
Как в С++ проверить, кокой тип у объекта (аналог 'is' и 'as' в Delphi)?
Напр.
if Sender is TEdit then
 (Sender as TEdit).Text := 'hrjfhgj';
...................

Автор: Baa 4.10.2002, 23:01
http://www.forum.vingrad.ru/cgi-bin/newforum/ikonboard.cgi?act=ST;f=1;t=3002;hl=cast

Автор: -= Demon =- 4.10.2002, 23:22
> Baa
Хотелось бы увидеть более вразумительный ответ, а не набор "чего-то". Я не "сишник", но сейчас стоит задача сделать блок именно на С++. Поэтому прошу "пошагово" объяснить:

1) if Object is TEdit;
2) (Object as TEdit).Name := .....

Автор: Fantasist 5.10.2002, 02:43
Ничего типа is в С++ нет.
Типа as это dynamic_cast. Он правда одновременно и типа is.

int fn(Object *obj)
{
 Edit *ed=dynamic_cast<Edit*>(obj);
....
};

Ecли оbj можно привести к типу Edit* - то он приведется. Иначе ed будет равно 0.

Автор: neutrino 9.10.2002, 22:21
Эта тема есть в нашем FAQ: http://www.forum.vingrad.ru/cgi-bin/newforum/ikonboard.cgi?act=ST;f=31;t=1125

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)