fork download
  1. #include <iostream>
  2. #include <vector>
  3.  
  4. class base
  5. {
  6. virtual void foo()
  7. {}
  8. };
  9.  
  10. class derived1 : public base
  11. {
  12. };
  13.  
  14. class derived2 : public base
  15. {
  16. };
  17.  
  18. int main()
  19. {
  20. std::vector<base*> v;
  21. v.emplace_back(new base);
  22. v.emplace_back(new derived1);
  23. v.emplace_back(new derived2);
  24.  
  25. for (size_t i = 0; i < v.size(); ++i)
  26. {
  27. std::cout << typeid(v[i]).name() << "\n";
  28. }
  29. for (size_t i = 0; i < v.size(); ++i)
  30. {
  31. std::cout << typeid(*v[i]).name() << "\n";
  32. }
  33. return 0;
  34. }
  35.  
Success #stdin #stdout 0s 4516KB
stdin
Standard input is empty
stdout
P4base
P4base
P4base
4base
8derived1
8derived2