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
|
Что — то не поняла про ассоциативный массив указателей |
|
AVC |
Отправлено: 14.06.2005, 13:27 |
|
Ветеран
Группа: Модератор
Сообщений: 1583
|
"Те же яйца в профиль".
Создаете экземпляры всех возможно требуемых классов. Указатели собираете в массив, индексированный именами классов.
Может приведете саму проблему, для которой вы ищите решение? Мне кажется, что вы не совсем четко представляете что делает компилятор (даже не линковщик), а что код во время своего исполнения.
|
|