typeid(*<class>).name(), откуда 15 в имени |
Здравствуйте, гость ( Вход | Регистрация )
typeid(*<class>).name(), откуда 15 в имени |
ЙаМайскЫйПчОЛ |
27.8.2009, 12:07
Сообщение
#1
|
Участник Группа: Участник Сообщений: 154 Регистрация: 10.7.2008 Из: СПб Пользователь №: 232 Спасибо сказали: 7 раз(а) Репутация: 5 |
Доброго времени суток.
вот такой код
а вывод вот: Раскрывающийся текст 15FreqParametrWgt 15FreqParametrWgt 15ModeParametrWgt вопрос... откуда 15 в имене??? впринципе не критично, но не понятно... ЗЫ: вывод одинаковый в виндовсе и в линуксе Сообщение отредактировал ЙаМайскЫйПчОЛ - 27.8.2009, 12:09 |
|
|
Litkevich Yuriy |
27.8.2009, 12:17
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Первый раз сталкиваюсь с таким ключевым словом - typeid
|
|
|
ЙаМайскЫйПчОЛ |
27.8.2009, 12:21
Сообщение
#3
|
Участник Группа: Участник Сообщений: 154 Регистрация: 10.7.2008 Из: СПб Пользователь №: 232 Спасибо сказали: 7 раз(а) Репутация: 5 |
Я тоже, мне просто на этапе выполнения надо сравнить два класса, этот метод описан у Шилдта
|
|
|
Litkevich Yuriy |
27.8.2009, 12:24
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Я вот в аглицкой вики нашёл, там нет "15"
|
|
|
BRE |
27.8.2009, 12:50
Сообщение
#5
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
Похоже что 15 это длина имени класса, а вот кто ее печатает или добавляет к имени пока не смотрел.
Точно, это длина имени класса. Проверял на gcc (GCC) 4.4.1 20090725 (Red Hat 4.4.1-2). Причем если в typeid передать указатель на объект, то впереди этой сигнатуры добавляется 'P' (P6Person). Для стандартных типов длина не указывается, т.е. int - 'i' int* - 'Pi' И вот еще ссылку нашел: http://bytes.com/topic/c/answers/139862-typeinfo Если используются namespace, то впереди будет идти N<длина имени namespace><имя namespace>. Сообщение отредактировал BRE - 27.8.2009, 13:23 |
|
|
ЙаМайскЫйПчОЛ |
27.8.2009, 13:19
Сообщение
#6
|
Участник Группа: Участник Сообщений: 154 Регистрация: 10.7.2008 Из: СПб Пользователь №: 232 Спасибо сказали: 7 раз(а) Репутация: 5 |
Litkevich Yuriy,
Совершенно верно... по другим экзамплам тоже все ровно, а суровая правда жизни... 15 не понимаю( |
|
|
ЙаМайскЫйПчОЛ |
27.8.2009, 14:38
Сообщение
#7
|
Участник Группа: Участник Сообщений: 154 Регистрация: 10.7.2008 Из: СПб Пользователь №: 232 Спасибо сказали: 7 раз(а) Репутация: 5 |
BRE, это да совпадает с длинной, но... лано еще потестю...
пример из вики который дал Юрий тоже не так работает... у меня приписка 6 и 8 соответственно, т.е. именно длина... под виндой под линём , результат одинаковый - наверное дело в гцц Сообщение отредактировал ЙаМайскЫйПчОЛ - 27.8.2009, 14:44 |
|
|
BRE |
27.8.2009, 14:45
Сообщение
#8
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
BRE, это да совпадает с длинной, но... лано еще потестю... пример из вики который дал Юрий тоже не так работает... у меня приписка 6 и 8 соответственно, т.е. именно длина... под виндой под линём , результат одинаковый - наверное дело в гцц Если нужны имена, то нужно парсить строку... |
|
|
ЙаМайскЫйПчОЛ |
27.8.2009, 14:50
Сообщение
#9
|
Участник Группа: Участник Сообщений: 154 Регистрация: 10.7.2008 Из: СПб Пользователь №: 232 Спасибо сказали: 7 раз(а) Репутация: 5 |
BRE, мне имя фактически не важно, я их буду сравнивать так ( typeid(*fpw) == typeid(*fpw1) )
коректно, логично и практично, главное мне выяснить, чтоб объекты были от одного класса созданы, так что сам имя проверять не буду... просто попался пример в руки решил проверить, получилась херня, вот и заинтересовался с англицкой вики Caution: the actual text returned by type_info::name() is implementation specific so don't rely on it if attempting to produce portable code. ))) вот всё и ястно (НЕ ЮЗАТЬ) Сообщение отредактировал ЙаМайскЫйПчОЛ - 27.8.2009, 15:00 |
|
|
BRE |
27.8.2009, 15:02
Сообщение
#10
|
Профессионал Группа: Участник Сообщений: 1112 Регистрация: 6.3.2009 Из: Ростов-на-Дону Пользователь №: 591 Спасибо сказали: 264 раз(а) Репутация: 44 |
|
|
|
Текстовая версия | Сейчас: 29.11.2024, 0:43 |