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

Оператор typeid

Оператор typeid возвращает объект типа std::type_info, который содержит информацию о типе выражения или типа. Оператор принимает в качестве параметра либо выражение, либо имя типа. Результат работы оператора можно сравнить с другим type_info с помощью операторов == и !=, а также получить имя типа с помощью метода name.

Синтаксис

typeid(expression) typeid(type)

Пример

Давайте получим информацию о типе переменной x и выведем имя этого типа:

#include <iostream> #include <typeinfo> using namespace std; int main() { int x = 42; cout << typeid(x).name() << endl; return 0; }

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

"i"

Пример

Давайте сравним типы двух переменных с помощью оператора typeid и оператора ==:

#include <iostream> #include <typeinfo> using namespace std; int main() { int a = 1; double b = 2.0; int c = 3; if (typeid(a) == typeid(c)) { cout << "a and c have the same type" << endl; } if (typeid(a) != typeid(b)) { cout << "a and b have different types" << endl; } return 0; }

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

"a and c have the same type" "a and b have different types"

Пример

Давайте получим информацию о типе указателя и разыменованного значения:

#include <iostream> #include <typeinfo> using namespace std; int main() { int x = 42; int* p = &x; cout << typeid(p).name() << endl; cout << typeid(*p).name() << endl; return 0; }

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

"Pi" "i"

Пример

Давайте проверим тип выражения с помощью оператора typeid и имени типа:

#include <iostream> #include <typeinfo> using namespace std; int main() { int x = 42; if (typeid(x) == typeid(int)) { cout << "x is int" << endl; } return 0; }

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

"x is int"

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

  • оператор sizeof,
    который возвращает размер типа в байтах
  • оператор decltype,
    который определяет тип выражения
  • оператор auto,
    который автоматически выводит тип переменной
  • оператор static_assert,
    который проверяет условие во время компиляции
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить