![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
Usya |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 7.6.2005 Репутация: нет Всего: нет |
Здравствуйте.
Есть код, что-то вроде:
Возможно ли определить имя по значению? Делать строковый массив и по индексу возвращать значения - не вариант: типов несколько, да и имена возможно могут со временем измениться и тогда надо будет переопределять массив (причем об этом еще и вспомнить потом надо). Переменные описаны в другом модуле (ях), хотя это не принципиально. Заранее благодарен. --------------------
Я не волшебник, я только учусь... |
|||
|
||||
SenkraD |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 3.2.2006 Где: Украина::Киев Репутация: 2 Всего: 23 |
Usya, нет.
А, вообще, зачем такой изврат? - это уже кривое решение по определению
От этого вообще нет защиты, кроме контракта между девелоперами |
|||
|
||||
EvilsInterrupt |
|
|||
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 2 Всего: 9 |
Usya,
В Дельфи можно через RTTI , может и в С++ также ) |
|||
|
||||
SenkraD |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 933 Регистрация: 3.2.2006 Где: Украина::Киев Репутация: 2 Всего: 23 |
EvilsInterrupt, нельзя это через RTTI сделать так, как компилятор транслирует его как макрос (хотя могу ошибатся)
Чуть не к теме, но иногда из-за этого страдают на sizeof'ав |
|||
|
||||
mes |
|
|||
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 144 Всего: 250 |
запихнуть всю логику преобразований значений в строки в один класс. Т.е написать к примеру класс Color, в котором определить нужные енумы и сделать (скорей всего статический) метод по возвращению имени от значения. надеюсь я правильно, хотя, однозначно, не до конца, уловил смысл вопроса.. |
|||
|
||||
Usya |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 7.6.2005 Репутация: нет Всего: нет |
SenkraD
Ответ простой: допустим мне нужно сформировать отчет, в котором в ячейки необходимо вставить вместо значений соответствующие имена. EvilsInterrupt +1 mes Переменные для моей задачи определены в другом модуле, так что приходится работать с тем, что есть и дублировать их в том или ином виде не хочется. Если бы задача была разовой, то это одно дело, а если прогу необходимо будет со временем модифицировать, то это прямая дорога к глюкам - нужно будет держать в голове где и что дублируется. Были бы модули мои - там бы можно было и похозяйничать. Пару ссылок думаю окажутся полезными: http://www.rsdn.ru/Forum/Message.aspx?mid=292629&only=1 и http://it.huij.net/html/Borland_jishushequ...1019/21930.html Всем спасибо! ![]() Это сообщение отредактировал(а) Usya - 9.2.2009, 19:01 --------------------
Я не волшебник, я только учусь... |
|||
|
||||
Usya |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 7.6.2005 Репутация: нет Всего: нет |
P.s.
Забыл добавить: если класс уже определен, то все гораздо упрощается и получается что-то вроде
Взял отсюда http://bcdev.narod.ru/Code.htm, хотя это не единственная копия. Где оригинал, не знаю, да и в данном случае не столь важно ![]() Это сообщение отредактировал(а) Usya - 9.2.2009, 19:02 --------------------
Я не волшебник, я только учусь... |
|||
|
||||
Usya |
|
||||
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 7.6.2005 Репутация: нет Всего: нет |
Господа, я нашел косяк в работе приведенных в ссылках алгоритмах, хотя возможно он и в TypInfo.hpp.
Для вот такого примера
все будет работать на ура, а в таком уже
будет лажа со сдвигом на единицу, т.е. на двойку (t=two) будет выводиться трояк (three). Не исключаю, что я мог что-то не то сделать, но все-таки это похоже на косяк :( Надеюсь будет полезно знать тем, кто с этим столкнется, поэтому и дописал. Это сообщение отредактировал(а) Usya - 9.2.2009, 19:20 --------------------
Я не волшебник, я только учусь... |
||||
|
|||||
EvilsInterrupt |
|
|||
Executables research ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1019 Регистрация: 14.7.2007 Где: Железнодорожный, МО, Россия Репутация: 2 Всего: 9 |
я думал "Usya" следует читать как "Ася" и грешным делом подумал что ты ... |
|||
|
||||
Usya |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 7.6.2005 Репутация: нет Всего: нет |
EvilsInterrupt
Ну рассмешил ![]() А Усей меня племянник назвал, когда еще только учился разговаривать! P/s Хотя это к теме и не относится. --------------------
Я не волшебник, я только учусь... |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |