C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Приведение типов
Tatiana
Отправлено: 14.06.2005, 12:48


Ученик-кочегар

Группа: Участник
Сообщений: 12



Есть строка с именем класса. Как привести объект к данному классу?
Например, AnsiString s = "TWinControl"
Нужно получить результат, аналогичный (TWinControl*)Sender
AVC
Отправлено: 14.06.2005, 12:58


Ветеран

Группа: Модератор
Сообщений: 1583



Во время выполнения?
если имя класса заранее не известно, то
if else if ....
если имя класса известно на этапе проектирования а не известен тип объекта, тогда
dynamic_cast
Tatiana
Отправлено: 14.06.2005, 13:07


Ученик-кочегар

Группа: Участник
Сообщений: 12



Имя неизвестно, но нельзя ли как-нибудь по другому?
AVC
Отправлено: 14.06.2005, 13:13


Ветеран

Группа: Модератор
Сообщений: 1583



Можно, если заменить if else на что-то еще. (Например ассоциативный массив указателей)
Или "работать" с минимально-необходимым наследником.
Tatiana
Отправлено: 14.06.2005, 13:17


Ученик-кочегар

Группа: Участник
Сообщений: 12



Что — то не поняла про ассоциативный массив указателей sad.gif
AVC
Отправлено: 14.06.2005, 13:27


Ветеран

Группа: Модератор
Сообщений: 1583



"Те же яйца в профиль".
Создаете экземпляры всех возможно требуемых классов. Указатели собираете в массив, индексированный именами классов.
Может приведете саму проблему, для которой вы ищите решение? Мне кажется, что вы не совсем четко представляете что делает компилятор (даже не линковщик), а что код во время своего исполнения.

Вернуться в Вопросы программирования в C++Builder