Сравнение имен типов в 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 результат.