fork download
  1. #include <iostream>
  2. #include <iostream>
  3. using namespace std;
  4. class A {
  5. public:
  6. A() { cout << "A ctor" << endl; }
  7. //A(const A& a) { cout << "A copy ctor" << endl; }
  8. virtual ~A() { cout << "A dtor" << endl; }
  9. virtual void foo() { cout << "A foo()" << endl; }
  10. };
  11. class B : public A {
  12. public:
  13. B() { cout << "B ctor" << endl; }
  14. virtual ~B() { cout << "B dtor" << endl; }
  15. virtual void foo() { cout << "B foo()" << endl; }
  16. protected:
  17. A mInstanceOfA; // don't forget about me!
  18. };
  19. A foo(A& input) {
  20. input.foo();
  21. return input;
  22. }
  23. int main() {
  24. B myB;
  25. A myA;
  26. myA = foo(myB);
  27. }
Success #stdin #stdout 0s 5304KB
stdin
Standard input is empty
stdout
A ctor
A ctor
B ctor
A ctor
B foo()
A dtor
A dtor
B dtor
A dtor
A dtor