SlideShare une entreprise Scribd logo
1  sur  17
Télécharger pour lire hors ligne
CONSTRUCTORS
AND
DESTRUCTORS
Harinder Singh
Sukhpal Singh
Thapar University, Patiala
Batch: 2011-2013
WHAT IS A CONSTRUCTOR ?
 In c++ , a constructor is a ‘special’ member
function whose task is to initialize the objects
of its class.
 It is special because its name is the same as
the class name.
 It is called constructor because it constructs
the value of data members of the class.
 The constructor is invoked whenever an object
of its associated class is created.
ssgill©tupatiala
CLASS WITH A CONSTRUCTOR
Class integer {
int m, n;
public:
integer(void); // constructor declared
};
Integer : : integer (void) // constructor defined
{
m=0; n=0;
}
Object declartion:
Integer int1; // object int1 created
ssgill©tupatiala
CHARACTERISTICS OF THE CONSTRUCTOR
 They should be declared in public section.
 They are invoked automatically when the objects are
created.
 They don't have return types, cannot return values.
 A constructor that accepts no parameters is called
default constructor. The default constructor for class
A is A:: A() . The statement A a; invokes the default
constructor of the compiler to create the object a.
ssgill©tupatiala
PARAMETERIZED CONSTRUCTOR
The constructor that can take arguments.
Class integer {
int m, n;
public:
integer(int x, int y); //parameterized constructor
};
Integer : : integer (int x, int y)
{
m=x; n=y;
}
Object declaration statement “integer int1 ; “ do not work
here.
ssgill©tupatiala
CALL IN PARAMETERIZED CONSTRUCTOR
 We must pass the initial values as arguments to
the constructor function when object is created.
This can be done in two ways:
 By calling the constructor explicitly.
integer int1 = integer(0, 100);
 By calling the constructor implicitly.
integer int1(0, 100);
This method is also called shorthand method.
ssgill©tupatiala
EXPLICIT/IMPLICIT CALL
int main()
{
integer int1(0, 100); //implicit call
integer int2 = integer(25, 75); //explicit call
cout<<“object 1:”
int1.function1();
cout<<“object 2:”
int2.function1();
return 0;
}
Output
object1: m=0 and n= 100
object2: m=25 and n= 75
ssgill©tupatiala
MULTIPLE CONSTRUCTOR IN A CLASS
Class integer
{
int m, n;
public:
integer() //default constructor
{m=0; n=0;}
integer(int a, int b) //parameterized constructor
{m=a; n=b;}
integer(integer & i) //copy constructor
{m= i.m; n= i.n;}
};
ssgill©tupatiala
CONSTRUCTORS WITH DEFAULT ARGUMENTS
complex(float real , float imag=0)
{
}
 complex c1(5.0);
 complex c2(2.0,3.0);
 Difference b/w A::A() and A::A(int a=0).
ssgill©tupatiala
DYNAMIC INITIALIZATION OF OBJECTS
Provide various initialization formats using
overloaded constructors.
 Fixed_deposit() { }
 Fixed_deposit(long int p, int y ,float r=0.12);
 Fixed_deposit( long int p, int y, int r);
ssgill©tupatiala
COPY CONSTRUCTOR
 It is used to declare and initialize an object
from another object.
e.g
• code() { }
• code( int a) {id = a;}
• code( code &x){ id = x.id; } //copy constructor.
 And various calls for them are:
• code A(100); // object A is Created and initialized.
• code B(A); // copy constructor called.
• code C = A; // copy constructor called again.
• code D; // object D is created , not initialized
D=A; // copy constructor is not called.
ssgill©tupatiala
DYNAMIC CONSTRUCTORS
 It is used to allocate memory while creating
objects.
• Enable the system to allocate right amount of
memory for each object when objects are not of
same size.
• Thus resulting in saving of memory.
ssgill©tupatiala
DYNAMIC CONSTRUCTORS
class String
{
char *name;
int length;
public:
String ()
{ length = 0;
name = new char[length+1];
}
String (char *s)
{ length = strlen(s);
name = new char[length+1];
strcpy(name, s);
}
};
main()
{
Char *first = “ME_SE_CR” ;
String name1( first);
String name2(“ Rupinder”);
.
.
.
}
ssgill©tupatiala
DESTRUCTORS
 ~ integer() { }
 As new is used to allocate memory in
dynamic constructors, here we use delete to
free that memory.
 Never take any argument nor does it return any
value.
 It will be invoked implicitly by compiler upon
exit from program or a block or a function.
ssgill©tupatiala
DESTRUCTORS
Int count = 0;
class test1
{
public :
~test1()
{
count ++;
cout <<“n no. of object created “
<< count ;
}
~test1 ()
{ cout <<“n no. of object destroyed”
<< count ;
Count - - ;
}
};
main()
{
cout << “n Enter Main n”;
test1 t1, t2, t3, t4;
{
cout <<“n Entered in block1” ;
test1 t5;
}
{
cout <<“n Entered in block2” ;
test1 t6;
}
cout << “n Re-Enter Main n”;
return 0;
}
ssgill©tupatiala
OUT PUT
 Enter Main
No. of object created 1
No. of object created 2
No. of object created 3
No. of object created 4
 Enter block 1
No. of object created 5
No. of object destroyed 5
 Enter block 2
No. of object created 5
No. of object destroyed 5
 Re - Enter Main
No. of object destroyed 4
No. of object destroyed 3
No. of object destroyed 2
No. of object destroyed 1
ssgill©tupatiala
THANK YOU
ssgill©tupatiala

Contenu connexe

Tendances

Virtual base class
Virtual base classVirtual base class
Virtual base class
Tech_MX
 

Tendances (20)

Pure virtual function and abstract class
Pure virtual function and abstract classPure virtual function and abstract class
Pure virtual function and abstract class
 
Classes and objects
Classes and objectsClasses and objects
Classes and objects
 
array of object pointer in c++
array of object pointer in c++array of object pointer in c++
array of object pointer in c++
 
Virtual base class
Virtual base classVirtual base class
Virtual base class
 
Constructors in C++
Constructors in C++Constructors in C++
Constructors in C++
 
Constructor and Types of Constructors
Constructor and Types of ConstructorsConstructor and Types of Constructors
Constructor and Types of Constructors
 
Inheritance in c++
Inheritance in c++Inheritance in c++
Inheritance in c++
 
Constructor in java
Constructor in javaConstructor in java
Constructor in java
 
Function overloading(c++)
Function overloading(c++)Function overloading(c++)
Function overloading(c++)
 
Static Data Members and Member Functions
Static Data Members and Member FunctionsStatic Data Members and Member Functions
Static Data Members and Member Functions
 
Object-oriented concepts
Object-oriented conceptsObject-oriented concepts
Object-oriented concepts
 
Pointers in c++
Pointers in c++Pointers in c++
Pointers in c++
 
07. Virtual Functions
07. Virtual Functions07. Virtual Functions
07. Virtual Functions
 
Generics
GenericsGenerics
Generics
 
Polymorphism in c++(ppt)
Polymorphism in c++(ppt)Polymorphism in c++(ppt)
Polymorphism in c++(ppt)
 
Function overloading and overriding
Function overloading and overridingFunction overloading and overriding
Function overloading and overriding
 
Operator Overloading
Operator OverloadingOperator Overloading
Operator Overloading
 
Constructors & destructors
Constructors & destructorsConstructors & destructors
Constructors & destructors
 
Java static keyword
Java static keywordJava static keyword
Java static keyword
 
Pointer in C++
Pointer in C++Pointer in C++
Pointer in C++
 

En vedette

Oop lec 5-(class objects, constructor & destructor)
Oop lec 5-(class objects, constructor & destructor)Oop lec 5-(class objects, constructor & destructor)
Oop lec 5-(class objects, constructor & destructor)
Asfand Hassan
 
Java lec class, objects and constructors
Java lec class, objects and constructorsJava lec class, objects and constructors
Java lec class, objects and constructors
Jan Niño Acierto
 
Object Oriented Programming Concepts
Object Oriented Programming ConceptsObject Oriented Programming Concepts
Object Oriented Programming Concepts
thinkphp
 

En vedette (20)

constructor and destructor-object oriented programming
constructor and destructor-object oriented programmingconstructor and destructor-object oriented programming
constructor and destructor-object oriented programming
 
Constructor and destructor in c++
Constructor and destructor in c++Constructor and destructor in c++
Constructor and destructor in c++
 
Constructor & Destructor
Constructor & DestructorConstructor & Destructor
Constructor & Destructor
 
Constructor and Destructor PPT
Constructor and Destructor PPTConstructor and Destructor PPT
Constructor and Destructor PPT
 
Constructor in java
Constructor in javaConstructor in java
Constructor in java
 
Java constructors
Java constructorsJava constructors
Java constructors
 
Oop lec 5-(class objects, constructor & destructor)
Oop lec 5-(class objects, constructor & destructor)Oop lec 5-(class objects, constructor & destructor)
Oop lec 5-(class objects, constructor & destructor)
 
Java lec constructors
Java lec constructorsJava lec constructors
Java lec constructors
 
Methods and constructors in java
Methods and constructors in javaMethods and constructors in java
Methods and constructors in java
 
Java lec class, objects and constructors
Java lec class, objects and constructorsJava lec class, objects and constructors
Java lec class, objects and constructors
 
constructor & destructor in cpp
constructor & destructor in cppconstructor & destructor in cpp
constructor & destructor in cpp
 
Oops ppt
Oops pptOops ppt
Oops ppt
 
Class object method constructors in java
Class object method constructors in javaClass object method constructors in java
Class object method constructors in java
 
Object Oriented Programming Concepts
Object Oriented Programming ConceptsObject Oriented Programming Concepts
Object Oriented Programming Concepts
 
Constructor
ConstructorConstructor
Constructor
 
Constructor & destructor
Constructor & destructorConstructor & destructor
Constructor & destructor
 
Constructor & destructor
Constructor & destructorConstructor & destructor
Constructor & destructor
 
Inheritance in oops
Inheritance in oopsInheritance in oops
Inheritance in oops
 
Interface
InterfaceInterface
Interface
 
Function in c
Function in cFunction in c
Function in c
 

Similaire à Constructors and Destructors

CONSTRUCTORS, DESTRUCTORS AND OPERATOR OVERLOADING.pptx
CONSTRUCTORS, DESTRUCTORS AND OPERATOR OVERLOADING.pptxCONSTRUCTORS, DESTRUCTORS AND OPERATOR OVERLOADING.pptx
CONSTRUCTORS, DESTRUCTORS AND OPERATOR OVERLOADING.pptx
DeepasCSE
 
Chapter 6.6
Chapter 6.6Chapter 6.6
Chapter 6.6
sotlsoc
 
Tutconstructordes
TutconstructordesTutconstructordes
Tutconstructordes
Niti Arora
 

Similaire à Constructors and Destructors (20)

Constructors and Destructors
Constructors and DestructorsConstructors and Destructors
Constructors and Destructors
 
CONSTRUCTORS, DESTRUCTORS AND OPERATOR OVERLOADING.pptx
CONSTRUCTORS, DESTRUCTORS AND OPERATOR OVERLOADING.pptxCONSTRUCTORS, DESTRUCTORS AND OPERATOR OVERLOADING.pptx
CONSTRUCTORS, DESTRUCTORS AND OPERATOR OVERLOADING.pptx
 
CONSTRUCTORS IN C++ +2 COMPUTER SCIENCE
CONSTRUCTORS IN C++ +2 COMPUTER SCIENCECONSTRUCTORS IN C++ +2 COMPUTER SCIENCE
CONSTRUCTORS IN C++ +2 COMPUTER SCIENCE
 
C++ Unit-III Lecture-3a-C++ Programming Concepts
C++ Unit-III Lecture-3a-C++ Programming ConceptsC++ Unit-III Lecture-3a-C++ Programming Concepts
C++ Unit-III Lecture-3a-C++ Programming Concepts
 
Constructors in C++.pptx
Constructors in C++.pptxConstructors in C++.pptx
Constructors in C++.pptx
 
Constructor,destructors cpp
Constructor,destructors cppConstructor,destructors cpp
Constructor,destructors cpp
 
C++Constructors
C++ConstructorsC++Constructors
C++Constructors
 
Constructors destructors
Constructors destructorsConstructors destructors
Constructors destructors
 
constructors and destructors
constructors and destructorsconstructors and destructors
constructors and destructors
 
Tut Constructor
Tut ConstructorTut Constructor
Tut Constructor
 
Operator overload rr
Operator overload  rrOperator overload  rr
Operator overload rr
 
chapter-9-constructors.pdf
chapter-9-constructors.pdfchapter-9-constructors.pdf
chapter-9-constructors.pdf
 
Constructors & Destructors [Compatibility Mode].pdf
Constructors & Destructors [Compatibility Mode].pdfConstructors & Destructors [Compatibility Mode].pdf
Constructors & Destructors [Compatibility Mode].pdf
 
Constructor in c++
Constructor in c++Constructor in c++
Constructor in c++
 
Constructors and destructors in C++
Constructors and destructors in  C++Constructors and destructors in  C++
Constructors and destructors in C++
 
Java Programming - 04 object oriented in java
Java Programming - 04 object oriented in javaJava Programming - 04 object oriented in java
Java Programming - 04 object oriented in java
 
Overloading
OverloadingOverloading
Overloading
 
Chapter 6.6
Chapter 6.6Chapter 6.6
Chapter 6.6
 
Lecture 3, c++(complete reference,herbet sheidt)chapter-13
Lecture 3, c++(complete reference,herbet sheidt)chapter-13Lecture 3, c++(complete reference,herbet sheidt)chapter-13
Lecture 3, c++(complete reference,herbet sheidt)chapter-13
 
Tutconstructordes
TutconstructordesTutconstructordes
Tutconstructordes
 

Plus de Dr Sukhpal Singh Gill

Plus de Dr Sukhpal Singh Gill (19)

RESEARCH METHODOLOGY: A PRACTITIONER APPROACH
RESEARCH METHODOLOGY: A PRACTITIONER APPROACHRESEARCH METHODOLOGY: A PRACTITIONER APPROACH
RESEARCH METHODOLOGY: A PRACTITIONER APPROACH
 
Cloud Data Centers and the Challenge of Sustainable Energy
Cloud Data Centers and the Challenge of Sustainable EnergyCloud Data Centers and the Challenge of Sustainable Energy
Cloud Data Centers and the Challenge of Sustainable Energy
 
If you know nothing about HTML, this is where you can start !!
If you know nothing about HTML, this is where you can start !!If you know nothing about HTML, this is where you can start !!
If you know nothing about HTML, this is where you can start !!
 
Software Requirement Specification
Software Requirement SpecificationSoftware Requirement Specification
Software Requirement Specification
 
Introduction to RDF
Introduction to RDFIntroduction to RDF
Introduction to RDF
 
Network Topologies
Network TopologiesNetwork Topologies
Network Topologies
 
How to Write an Effective Research Paper
How to Write an Effective Research PaperHow to Write an Effective Research Paper
How to Write an Effective Research Paper
 
GREEN CLOUD COMPUTING-A Data Center Approach
GREEN CLOUD COMPUTING-A Data Center ApproachGREEN CLOUD COMPUTING-A Data Center Approach
GREEN CLOUD COMPUTING-A Data Center Approach
 
End-to-End Security in Mobile-Cloud Computing
End-to-End Security in Mobile-Cloud ComputingEnd-to-End Security in Mobile-Cloud Computing
End-to-End Security in Mobile-Cloud Computing
 
Java.NET: Integration of Java and .NET
Java.NET: Integration of Java and .NETJava.NET: Integration of Java and .NET
Java.NET: Integration of Java and .NET
 
Software Verification, Validation and Testing
Software Verification, Validation and TestingSoftware Verification, Validation and Testing
Software Verification, Validation and Testing
 
Software Requirements Specification (SRS) for Online Tower Plotting System (O...
Software Requirements Specification (SRS) for Online Tower Plotting System (O...Software Requirements Specification (SRS) for Online Tower Plotting System (O...
Software Requirements Specification (SRS) for Online Tower Plotting System (O...
 
Reduction of Blocking Artifacts In JPEG Compressed Image
 Reduction of Blocking Artifacts In JPEG Compressed Image Reduction of Blocking Artifacts In JPEG Compressed Image
Reduction of Blocking Artifacts In JPEG Compressed Image
 
Workshop on Basics of Software Engineering (DFD, UML and Project Culture)
Workshop on Basics of Software Engineering (DFD, UML and Project Culture)Workshop on Basics of Software Engineering (DFD, UML and Project Culture)
Workshop on Basics of Software Engineering (DFD, UML and Project Culture)
 
Case Study Based Software Engineering Project Development: State of Art
Case Study Based Software Engineering Project Development: State of ArtCase Study Based Software Engineering Project Development: State of Art
Case Study Based Software Engineering Project Development: State of Art
 
Reduction of Blocking Artifacts In JPEG Compressed Image
Reduction of Blocking Artifacts In JPEG Compressed ImageReduction of Blocking Artifacts In JPEG Compressed Image
Reduction of Blocking Artifacts In JPEG Compressed Image
 
Reusability Framework for Cloud Computing
Reusability Framework for Cloud ComputingReusability Framework for Cloud Computing
Reusability Framework for Cloud Computing
 
The reuse capability model
The reuse capability modelThe reuse capability model
The reuse capability model
 
Topological methods
Topological methods Topological methods
Topological methods
 

Dernier

Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
KarakKing
 

Dernier (20)

HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptxHMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
HMCS Vancouver Pre-Deployment Brief - May 2024 (Web Version).pptx
 
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdfUnit 3 Emotional Intelligence and Spiritual Intelligence.pdf
Unit 3 Emotional Intelligence and Spiritual Intelligence.pdf
 
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdfUGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
UGC NET Paper 1 Mathematical Reasoning & Aptitude.pdf
 
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
Beyond_Borders_Understanding_Anime_and_Manga_Fandom_A_Comprehensive_Audience_...
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Salient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functionsSalient Features of India constitution especially power and functions
Salient Features of India constitution especially power and functions
 
Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)Accessible Digital Futures project (20/03/2024)
Accessible Digital Futures project (20/03/2024)
 
Python Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docxPython Notes for mca i year students osmania university.docx
Python Notes for mca i year students osmania university.docx
 
Single or Multiple melodic lines structure
Single or Multiple melodic lines structureSingle or Multiple melodic lines structure
Single or Multiple melodic lines structure
 
Key note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdfKey note speaker Neum_Admir Softic_ENG.pdf
Key note speaker Neum_Admir Softic_ENG.pdf
 
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
NO1 Top Black Magic Specialist In Lahore Black magic In Pakistan Kala Ilam Ex...
 
Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)Jamworks pilot and AI at Jisc (20/03/2024)
Jamworks pilot and AI at Jisc (20/03/2024)
 
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
2024-NATIONAL-LEARNING-CAMP-AND-OTHER.pptx
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
Wellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptxWellbeing inclusion and digital dystopias.pptx
Wellbeing inclusion and digital dystopias.pptx
 
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
Sensory_Experience_and_Emotional_Resonance_in_Gabriel_Okaras_The_Piano_and_Th...
 
How to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptxHow to setup Pycharm environment for Odoo 17.pptx
How to setup Pycharm environment for Odoo 17.pptx
 
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptxHMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
HMCS Max Bernays Pre-Deployment Brief (May 2024).pptx
 
Holdier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdfHoldier Curriculum Vitae (April 2024).pdf
Holdier Curriculum Vitae (April 2024).pdf
 
SOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning PresentationSOC 101 Demonstration of Learning Presentation
SOC 101 Demonstration of Learning Presentation
 

Constructors and Destructors

  • 2. WHAT IS A CONSTRUCTOR ?  In c++ , a constructor is a ‘special’ member function whose task is to initialize the objects of its class.  It is special because its name is the same as the class name.  It is called constructor because it constructs the value of data members of the class.  The constructor is invoked whenever an object of its associated class is created. ssgill©tupatiala
  • 3. CLASS WITH A CONSTRUCTOR Class integer { int m, n; public: integer(void); // constructor declared }; Integer : : integer (void) // constructor defined { m=0; n=0; } Object declartion: Integer int1; // object int1 created ssgill©tupatiala
  • 4. CHARACTERISTICS OF THE CONSTRUCTOR  They should be declared in public section.  They are invoked automatically when the objects are created.  They don't have return types, cannot return values.  A constructor that accepts no parameters is called default constructor. The default constructor for class A is A:: A() . The statement A a; invokes the default constructor of the compiler to create the object a. ssgill©tupatiala
  • 5. PARAMETERIZED CONSTRUCTOR The constructor that can take arguments. Class integer { int m, n; public: integer(int x, int y); //parameterized constructor }; Integer : : integer (int x, int y) { m=x; n=y; } Object declaration statement “integer int1 ; “ do not work here. ssgill©tupatiala
  • 6. CALL IN PARAMETERIZED CONSTRUCTOR  We must pass the initial values as arguments to the constructor function when object is created. This can be done in two ways:  By calling the constructor explicitly. integer int1 = integer(0, 100);  By calling the constructor implicitly. integer int1(0, 100); This method is also called shorthand method. ssgill©tupatiala
  • 7. EXPLICIT/IMPLICIT CALL int main() { integer int1(0, 100); //implicit call integer int2 = integer(25, 75); //explicit call cout<<“object 1:” int1.function1(); cout<<“object 2:” int2.function1(); return 0; } Output object1: m=0 and n= 100 object2: m=25 and n= 75 ssgill©tupatiala
  • 8. MULTIPLE CONSTRUCTOR IN A CLASS Class integer { int m, n; public: integer() //default constructor {m=0; n=0;} integer(int a, int b) //parameterized constructor {m=a; n=b;} integer(integer & i) //copy constructor {m= i.m; n= i.n;} }; ssgill©tupatiala
  • 9. CONSTRUCTORS WITH DEFAULT ARGUMENTS complex(float real , float imag=0) { }  complex c1(5.0);  complex c2(2.0,3.0);  Difference b/w A::A() and A::A(int a=0). ssgill©tupatiala
  • 10. DYNAMIC INITIALIZATION OF OBJECTS Provide various initialization formats using overloaded constructors.  Fixed_deposit() { }  Fixed_deposit(long int p, int y ,float r=0.12);  Fixed_deposit( long int p, int y, int r); ssgill©tupatiala
  • 11. COPY CONSTRUCTOR  It is used to declare and initialize an object from another object. e.g • code() { } • code( int a) {id = a;} • code( code &x){ id = x.id; } //copy constructor.  And various calls for them are: • code A(100); // object A is Created and initialized. • code B(A); // copy constructor called. • code C = A; // copy constructor called again. • code D; // object D is created , not initialized D=A; // copy constructor is not called. ssgill©tupatiala
  • 12. DYNAMIC CONSTRUCTORS  It is used to allocate memory while creating objects. • Enable the system to allocate right amount of memory for each object when objects are not of same size. • Thus resulting in saving of memory. ssgill©tupatiala
  • 13. DYNAMIC CONSTRUCTORS class String { char *name; int length; public: String () { length = 0; name = new char[length+1]; } String (char *s) { length = strlen(s); name = new char[length+1]; strcpy(name, s); } }; main() { Char *first = “ME_SE_CR” ; String name1( first); String name2(“ Rupinder”); . . . } ssgill©tupatiala
  • 14. DESTRUCTORS  ~ integer() { }  As new is used to allocate memory in dynamic constructors, here we use delete to free that memory.  Never take any argument nor does it return any value.  It will be invoked implicitly by compiler upon exit from program or a block or a function. ssgill©tupatiala
  • 15. DESTRUCTORS Int count = 0; class test1 { public : ~test1() { count ++; cout <<“n no. of object created “ << count ; } ~test1 () { cout <<“n no. of object destroyed” << count ; Count - - ; } }; main() { cout << “n Enter Main n”; test1 t1, t2, t3, t4; { cout <<“n Entered in block1” ; test1 t5; } { cout <<“n Entered in block2” ; test1 t6; } cout << “n Re-Enter Main n”; return 0; } ssgill©tupatiala
  • 16. OUT PUT  Enter Main No. of object created 1 No. of object created 2 No. of object created 3 No. of object created 4  Enter block 1 No. of object created 5 No. of object destroyed 5  Enter block 2 No. of object created 5 No. of object destroyed 5  Re - Enter Main No. of object destroyed 4 No. of object destroyed 3 No. of object destroyed 2 No. of object destroyed 1 ssgill©tupatiala