fork download
  1. #include <list>
  2. #include <memory>
  3. #include <iostream>
  4. using namespace std;
  5.  
  6. struct mybase{
  7. virtual void proc(){
  8. cout << "I'm mybase" << endl;
  9. }
  10. virtual ~mybase() {} // don't forget this!
  11. };
  12.  
  13. struct myderiv: public mybase{
  14. void proc(){
  15. cout << "I'm myderiv" << endl;
  16. }
  17. };
  18.  
  19. int main(){
  20. myderiv a;
  21. a.proc();
  22.  
  23. mybase *b = &a;
  24. b->proc();
  25.  
  26. list<unique_ptr<mybase>> c;
  27. c.push_back(unique_ptr<mybase>(new myderiv(a)));
  28. list<unique_ptr<mybase>>::iterator it = c.begin();
  29. (*it)->proc();
  30.  
  31. return 0;
  32. }
  33.  
Success #stdin #stdout 0s 3472KB
stdin
Standard input is empty
stdout
I'm myderiv
I'm myderiv
I'm myderiv