class Base { public: int i; Base() { cout<<\"Base Constructor\"<
I think you have to explicitly call the base copy constructor:
Derived (Derived& d) : Base(d) { cout<<"Derived copy Constructor"<