fork download
  1. #include <iostream>
  2. #include <memory>
  3.  
  4. using namespace std;
  5.  
  6. struct Parent{
  7. virtual void funky() = 0;
  8. virtual ~Parent(){}
  9. };
  10.  
  11. struct Child1 : Parent{
  12. void funky(){cout << "Child 1";}
  13. };
  14.  
  15. struct Child2 : Parent{
  16. void funky(){cout << "Child 2";}
  17. };
  18.  
  19. int main()
  20. {
  21. shared_ptr<Parent> ptr(new Child1());
  22. ptr->funky();
  23. cout << '\n';
  24. ptr.reset(new Child2());
  25. ptr->funky();
  26. cout << '\n';
  27.  
  28. return 0;
  29. }
Success #stdin #stdout 0s 3432KB
stdin
Standard input is empty
stdout
Child 1
Child 2