![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| MAKCim |
|
||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
есть интерфейс и множество его реализаций, есть список типов этих реализаций
надо по ссылке на интерфейс определить на объект какого класса R1, R2, ... ссылается данная ссылка я определил индекс класса в списке типов, однако хотелось бы получить сам тип, что то вроде
если бы индекс определялся статически на этапе компиляции, то было бы просто, а так он вычисляется в run-time, вообще думаю это невозможно ps. задача надуманная -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||
|
|||||
| azesmcar |
|
|||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Неважно run-time он выделяется или нет..важно что ссылка то у тебя есть...и ссылка на определенный тип. Пока что не могу конкретно понять что именно тебе надо решить...может есть обходные пути...но в общем случае в С++ есть макрос..может пример тебе поможет..если нет шли часть кода...
И еще покопайся в функции typeid...может и это поможет, но учти что для typeid тебе нужно будет включить RTTI (Run-Time Type Information) |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Если тип объекта динамический - то он по определению не может быть известен в момент компиляции, на то и RTTI == run-time ...
Однако, если все же по логике задачи тип известен на этапе компиляции (однако незвестен в данном месте твоему коду), то для его получения ссылка на объект тебе никак не поможет. На этом этапе ты можешь работать только с типами (ну еще с константами). -------------------- ... |
|||
|
||||
| azesmcar |
|
||||||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Тип может быть известен, ведь указатель на "что-то" обьявлен? Может я чего-то в задаче не понимаю? ссылка
указтель
Добавлено @ 10:56 Правда в случае с ссылкой мы получаем не тип int& а тип int.. Добавлено @ 11:01 тоже самое с template -ом...
|
||||||||
|
|||||||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
1) __typeof - это не C++, а расширение Microsoft для Managed C
2) ссылка или указатель на что-то может на самом деле указывать на производный класс - в этом смысле я говорила насчет динамического типа - он может отличаться от объявленного статического типа. MAKCim Никак не могу понять, в контексте какой задачи (хоть бы и надуманной) возник твой вопрос ? -------------------- ... |
|||
|
||||
| azesmcar |
|
||||||
![]() uploading... ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 6291 Регистрация: 12.11.2004 Где: Армения Репутация: 81 Всего: 211 |
Только не надо к словам придираться...этот код компилировался под unix..Visual Studio у меня отродясь не водилось...несмотря на то что это microsoft extension во всяком случае работает на всех *nix платформах...как и на виндоузе...
Тут согласен...но я же не вижу полной задачи...есть вопрос, весьма расплывчатый...не видно ни иерархии, ни кода...я же сказал
и не говорил что это решение |
||||||
|
|||||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Я и не придираюсь Твой unix-компилятор, оказывается, тоже его определяет - надо полагать, иначе, чем MSVC. А задача - да, непонятная, и автор увял... -------------------- ... |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
в процессе чтения Александреску -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 53 Всего: 183 |
Это-то как раз понятно... Какую задачу ты себе придумал? -------------------- ... |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |