/** * Copy constructor * Example 5 */ #include <iostream> using namespace std; class Inner { public: Inner() { cout << "In Inner class ctor" << endl; } Inner( const Inner & o ) { cout << "In Inner class copy ctor" << endl; } ~Inner() { cout << "In Inner class dtor" << endl; } virtual char * Id (void ) { return "Inner"; } }; int foo ( Inner x ) { cout << "In function foo" << endl; } int main( int argc, char *argv[]) { Inner bar; cout << "Calling function foo" << endl; foo( bar ); }