fork download
  1. #include <iostream>
  2. #include <typeinfo>
  3.  
  4. class A {
  5. public:
  6. virtual ~A() {}
  7. };
  8.  
  9. class B: public A {};
  10. class C: public A {};
  11.  
  12.  
  13. int main() {
  14. const A& a = C{};
  15.  
  16. const auto& id = typeid(a);
  17.  
  18. if(id == typeid(B)) {
  19. std::cout << "Got a B." << std::endl;
  20. }
  21. else if(id == typeid(C)) {
  22. std::cout << "It's a C!" << std::endl;
  23. }
  24.  
  25. return 0;
  26. }
Success #stdin #stdout 0s 5316KB
stdin
Standard input is empty
stdout
It's a C!