std::type_info, полученные из оператора typeid, можно сравнивать оператором равенства. Если две ссылки на базу указывают на один объект с одним.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
497 of 696 menu
◀ ▶

Сравнение имен типов в C++

Объекты std::type_info, полученные из оператора typeid, можно сравнивать оператором равенства.

Если две ссылки на базу указывают на один объект с одним динамическим типом, сравнение дает истину. Запишем два имени через разные базовые ссылки на тот же Circle и выведем результат:

┌pPathX="main.cpp" #include <iostream> #include <typeinfo> class Shape { public: virtual ~Shape() = default; }; class Circle : public Shape {}; int main() { Circle disk; Shape& first = disk; Shape& second = disk; std::cout << std::boolalpha << (typeid(first) == typeid(second)) << "\n"; return 0; }

Создайте Animal с виртуальным деструктором и Cat. Две ссылки Animal& на один Cat сравните через typeid и выведите std::boolalpha результат.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить