fork download
#include <iostream>
#include <iostream>
using namespace std;
class A {
public:
A() { cout << "A ctor" << endl; }
//A(const A& a) { cout << "A copy ctor" << endl; }
virtual ~A() { cout << "A dtor" << endl; }
virtual void foo() { cout << "A foo()" << endl; }
};
class B : public A {
public:
B() { cout << "B ctor" << endl; }
virtual ~B() { cout << "B dtor" << endl; }
virtual void foo() { cout << "B foo()" << endl; }
protected:
A mInstanceOfA; // don't forget about me!
};
A foo(A& input) {
input.foo();
return input;
}
int main() {
B myB;
A myA;
myA = foo(myB);
}
Success #stdin #stdout 0.01s 5300KB
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