fork(1) download
  1. #include <iostream>
  2. #include <vector>
  3. #include <memory>
  4. #include <string>
  5. using namespace std;
  6.  
  7. class base
  8. {
  9. int field1;
  10. protected:
  11. base(int _field):
  12. field1(_field){}
  13. public:
  14. virtual string to_string()=0;
  15. };
  16.  
  17. class subclass : public base
  18. {
  19. int field2;
  20.  
  21. public:
  22. subclass(int _field1, int _field2):
  23. base(_field1),field2(_field2){}
  24.  
  25.  
  26. string to_string()
  27. {
  28. return "I am a subtype!!";
  29. }
  30. };
  31.  
  32. int main()
  33. {
  34. vector<unique_ptr<base> > x;
  35. unique_ptr<base> item(new subclass(123,456));
  36. x.push_back(std::move(item));
  37. cout << x[0]->to_string() <<endl;
  38. return 0;
  39. }
Success #stdin #stdout 0s 3276KB
stdin
Standard input is empty
stdout
I am a subtype!!