Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056

typeid и классы

11.03.2013, 01:36. Показов 2995. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Разбираю пример с учебника:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <typeinfo>
 
class myclass
{
    int i;
};
 
int main()
{
    int i, j;
    float f;
    myclass ob; 
 
    std::cout << typeid(i).name() << '\n';
    std::cout << typeid(f).name() << '\n';
    std::cout << typeid(ob).name() << '\n';
 
    if (typeid(i) == typeid(j))
        std::cout << "i and j equal.\n";
    if (typeid(j) != typeid(f))
        std::cout << "j and f have different types.\n";
 
    return 0;
}
У меня вопрос: "что за цифра 7 перед именем класса?"
Bash
1
2
3
4
5
6
7
8
ilyuha21st@coldshoot:~/Projects$ g++ -Wall -pedantic main.cpp -o prog
ilyuha21st@coldshoot:~/Projects$ ./prog
i
f
7myclass
i and j equal.
j and f have different types.
ilyuha21st@coldshoot:~/Projects$
http://ideone.com/503QfI
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.03.2013, 01:36
Ответы с готовыми решениями:

Typeid
ошибка непонятная мне в 43-44 строке (((( #include&lt;iostream&gt; #include&lt;typeinfo&gt; #include&lt;cstdlib&gt; using namespace std; ...

typeid
Кто-нибудь может объяснить зачем в C++ , а конкретно в ООП нужен оператор tepeid. Что он делает и т.п. Вот например что делает данная...

присвоение typeid
При использовании cout&lt;&lt;typeid(/*...*/).name()&lt;&lt;&quot;\n&quot;; выдается что переменная входит в класс, например, Object Есть ли возможность...

4
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
11.03.2013, 01:40
http://en.wikipedia.org/wiki/Name_mangling

Цитата Сообщение от xtorne21st Посмотреть сообщение
что за цифра 7 перед именем класса?
а троечку не хо?
0
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
11.03.2013, 01:44  [ТС]
И почему вместо типов int и float выводит имена переменных? В учебнике там как раз имена типов.

Добавлено через 3 минуты
А можете кратко объяснить в чём соль? Я с английским не совсем "на ты".
0
~ Эврика! ~
 Аватар для OhMyGodSoLong
1258 / 1007 / 74
Регистрация: 24.07.2012
Сообщений: 2,002
11.03.2013, 01:53
Соль в том, что метод typeid::name() предназначен для людей. Он не обязан выводить уникальный идентификатор типа. И не обязан выводить что-то постоянное независимо от версии рантайма, компилятора и фаз Луны. Он вообще может ничего не выводить. Это просто строка, которая "как-то" характеризует то, от чего взят typeid. Что именно там будет — решает данная версия компилятора. gcc, как видите, тупо выводит имя сущности из таблицы символов.
1
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
11.03.2013, 01:58
Данные которые предоставляет typeid - implemetation defined т.е. зависят от того что там разработчики компилятора "понапихали".
Конкретно gcc применяет name mangling для именования типов.
VS печатает имена типов как есть.
Цитата Сообщение от OhMyGodSoLong Посмотреть сообщение
typeid::name()
type_info::name
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.03.2013, 01:58
Помогаю со студенческими работами здесь

Typeid в clion
Почему при током коде CLion выводит 1T? И что это значит? #include &lt;iostream&gt; #include &lt;typeinfo&gt; class A{ public: int k; }; ...

Проверка типа (typeid)
Подскажите пожалуйста как можно правильно реализовать такую вещь: если тип переменной и == int то.... нагуглил функцию:...

Название типа объекта typeid
Когда вывожу название типа объекта, то перед ним появляются цифры 4 и 8. что они означают? В низу показал что выводит программа ...

Как работает typeid( ).name() в minigw?
Почему typeid( ).name() в minigw возвращает не просто тип аргумента, а ещё и две цифры перед ним? Кусок кода: for ( size_t j = 0; j...

Какую функцию выполняет typeid?
template&lt;class T&gt; void Menu::showList(queue&lt;T&gt;&amp; l) { Smart a; Electro c; while (true) { system(&quot;cls&quot;); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru