24. Constructor and destructor calling:
Constructor:–
• Derived class constructor is called to create
derived class object
• Invokes base class constructor before derived
class initializer list & constructor body
Destructor:–
• Destructor are called in Reverse order of constructor
• Derived class destructor body is executed first
• Then destructors body of base class executed
26. Implicit callclass B {
public:
B(){cout<<"Construct B";}
~B(){cout<<"Destruct B”; }
};
class D: public B{
public:
D(){cout<<"Construct D";}
~D(){cout<<"Destruct D";}
};
int main(){
D obj; //object of derived class
}
27. Output
Constructor B // implicitly call base class
constructor
Constructor D
Destructor D
Destructor B
28. Explicit callclass B
{ public:
int x;
B(int i) {
x=i;
cout<<“parameterize constructor B”;
}
};
Class D: public B
{ public:
int y;
D(int j) :B(j){
y=j;
cout<<“parameterize constructor D”;
}
};
29. output:
int main()
{
D obj(5); //object of derived class
cout<<obj.x<<endl;
}
Parameterize constructor B
Parameterize constructor D
5
30. When a program creates a derived-
class object
The derived-class constructor immediately calls
the base-class constructor,
The base-class constructor’s body executes,
Then the derived class’s member initializers
execute, and
Finally the derived-class constructor’s body
executes