Как узнать тип переменной в C++?

Пользователь

от carlo.cummerata , в категории: C/C++ , 2 года назад

Как узнать тип переменной в C++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jerrold_langworth , 2 года назад

@carlo.cummerata Вы можете использовать typeid(var).name() чтобы узнать тип переменной в C++, посмотрите небольшой пример кода ниже:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#include <iostream>

int main() {
    char var;
    // Output: c
    std::cout << typeid(var).name() << std::endl;

    int var1;
    // Output: i
    std::cout << typeid(var1).name() << std::endl;

    double var2;
    // Output: d
    std::cout << typeid(var2).name() << std::endl;
    return 0;
}


Пользователь

от stephon , год назад

@carlo.cummerata 

В C++ можно использовать тип typeid для определения типа переменной. Он возвращает объект типа type_info, который содержит информацию о типе. Например, чтобы узнать тип переменной x, можно использовать следующий код:

1
2
3
4
5
6
7
8
#include <iostream>
#include <typeinfo>

int main() {
    int x = 5;
    std::cout << typeid(x).name() << std::endl;
    return 0;
}


В этом примере, typeid(x).name() возвращает строку с именем типа x.


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


Есть еще способ использования шаблона std::decay для определения конечного типа указателя или ссылки

1
2
#include <type_traits>
using type = std::decay<decltype(x)>::type;


Но оба с