#include <iostream>
using namespace std;
class B{
public:
B() { cout << "B default constructor" << endl; }
B( B& ) { cout << "B copy constructor" << endl; }
~B() { cout << "B destructor" << endl; }
};
class C{
public:
C() { cout << "C default constructor" << endl; }
C( C& ) { cout << "C copy constructor" << endl; }
~C() { cout << "C destructor" << endl; }
};
int main(){
C c;
B b;
cout << "before function call" << endl;
c = f( b );
cout << "after function call" << endl;
}
C f( B bb ){
C cc;
return cc;
}
NOW OUTPUT:-
C default constructor
B default constructor
before function call
B copy constructor
C default constructor
C copy constructor
C destructor
B destructor
C destructor
after function call
B destructor
C destructor
it is actually a slide from a lecture in topic OOP DETAILED.