РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
78 of 815 menu

Класс type_info

Класс type_info содержит информацию о типе данных, полученную с помощью оператора typeid. Объекты этого класса нельзя создать напрямую - они возвращаются оператором typeid. С помощью type_info можно сравнивать типы операторами == и !=, а также получать имя типа методом name. Класс объявлен в заголовочном файле <typeinfo>.

Синтаксис

#include <typeinfo> const type_info& ti = typeid(expression);

Пример

Давайте получим информацию о типе переменной int и сравним её с типом double:

#include <iostream> #include <typeinfo> using namespace std; int main() { int a = 5; double b = 3.14; if (typeid(a) == typeid(int)) { cout << "a is int" << endl; } if (typeid(a) != typeid(b)) { cout << "a and b have different types" << endl; } return 0; }

Результат выполнения кода:

"a is int" "a and b have different types"

Пример

Давайте получим имя типа с помощью метода name:

#include <iostream> #include <typeinfo> using namespace std; int main() { int a = 5; double b = 3.14; string s = "abcde"; cout << typeid(a).name() << endl; cout << typeid(b).name() << endl; cout << typeid(s).name() << endl; return 0; }

Результат выполнения кода:

"i" "d" "NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE"

Пример

Давайте сравним типы двух указателей и проверим, являются ли они одинаковыми:

#include <iostream> #include <typeinfo> using namespace std; int main() { int* p1 = nullptr; int* p2 = nullptr; double* p3 = nullptr; if (typeid(p1) == typeid(p2)) { cout << "p1 and p2 have the same type" << endl; } if (typeid(p1) != typeid(p3)) { cout << "p1 and p3 have different types" << endl; } return 0; }

Результат выполнения кода:

"p1 and p2 have the same type" "p1 and p3 have different types"

Смотрите также

  • класс type_info,
    который хранит информацию о типе
  • тип any,
    который хранит значение любого типа
  • тип tuple,
    который хранит набор значений разных типов
  • тип pair,
    который хранит пару значений
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить