Lecture 4-1
Lecture 4-1
AND
DESTRUCTORS
Eng.Ezzaddin Ahmed 1
KEY CONCEPTS
Introduction to Constructors
Parameterized Constructors
Multiple Constructors in a class
Constructors with default arguments
Copy Constructor
Dynamic Constructor
Destructors
class integer
{
int m, n;
public:
integer(void); //constructor declared
…….
…….
};
int main()
{
integer int1(0,100); // constructor called implicitly
integer int2 = integer(25,75);// constructor called
explicitly The output :
cout<< “\nobject1”<<“\n”; Object1
int1.display(); m=0
n=100
cout<<“\nobject2”<<“\n”;
int2.display();
object2
return 0; m=25
} n=75
Eng. Ezzaddin Ahmed OOP(C++) 8
MULTIPLE CONSTRUCTOR
Integer I2(20,40);
Integer I3(I2); //copy constructor
class complex
{
float x,y;
public:
complex () { } //constructor no argument
complex (float a){x=y=a;} //constructor-one arg
complex(float real, float imag) //constructor-two args
{ x=real; y=imag;}
friend complex sum(complex,complex);
friend void show (complex);
};
complex sum(complex c1,complex c2) //friend
{
complex c3;
c3.x=c1.x+c2.x;
c3.y=c1.y+c2.y;
return(c3);
}
Eng. Ezzaddin Ahmed OOP(C++) 10
void show(complex c) //friend
{
cout<<c.x<<"+j"<<c.y<<"\n";
}
int main()
{
complex A(2.7,3.5); //define & initialize
complex B(1.6); //define & initialize
complex c; //define
return 0; Output:
}
A = 2.7 + j3.5
B = 1.6 + j1.6
C = 4.3 + j5.1
Complex C(5.0);
Assigns the value 5.0 to the real variable and 0.0 to imag(by
default). However, the statement
Complex C(2.0,3.0);
Assigns 2.0 to real and 3.0 to image.
It has same name as the class name but begins with a tilde(~)
sign.
#include<iostream>
Enter Main
int main()
{ No. of object created 1
cout<<“Enter Main”; No. of object created 2
alpha A1,A2,A3,A4; No. of object created 3
{ No. of object created 4
cout<<“Enter Block1”;
alpha A5; Enter Block1
}
{ No. of object created 5
cout<<“Enter Block2”; No. of object destroyed 5
alpha A6;
} Enter Block2
cout<<“Re-Enter Main”;
No. of object created 5
return 0; No. of object destroyed 5
}
Re-enter Main