Код IT
← Каталог

RTTI в C++ — typeid и dynamic_cast — typeid

Фрагмент из «RTTI в C++ — typeid и dynamic_cast»: typeid.

C++ main.cpp
#include <typeinfo>
#include <iostream>

class Base {
public:
    virtual ~Base() = default;
};

class Derived : public Base {};

void print_type(const Base& obj) {
    const std::type_info& ti = typeid(obj);
    std::cout << ti.name() << '\n';
}

int main() {
    Derived d;
    print_type(d);
    std::cout << (typeid(d) == typeid(Derived)) << '\n';
}
#include <typeinfo>
#include <iostream>

class Base {
public:
    virtual ~Base() = default;
};

class Derived : public Base {};

void print_type(const Base& obj) {
    const std::type_info& ti = typeid(obj);
    std::cout << ti.name() << '\n';
}

int main() {
    Derived d;
    print_type(d);
    std::cout << (typeid(d) == typeid(Derived)) << '\n';
}