SlideShare a Scribd company logo
1 of 28
CONSTRUCTOR & DESTRUCTOR
Chap 61
By:-GouravKottawar
CONTENTS
6.1 Constructor
6.2 Parameterized Constructor
6.3 Multiple Constructor in a Class
6.4 Constructors with Default Arguments
6.5 Dynamic Initialization of Objects
6.6 Copy Constructor
6.7 Dynamic Constructor
6.8 Const Object
6.9 Destructor
2
By:-GouravKottawar
CONSTRUCTORS
 A constructor is a special member function whose
task is to initialize the objects of its class.
 It is special because its name is same as the class
name.
 The constructor is invoked whenever an object of
its associated class is created.
 It is called constructor because it constructs the
values of data members of the class.
3
By:-GouravKottawar
CONSTRUCTOR - EXAMPLE
class add
{
int m, n ;
public :
add (void) ;
------
};
add :: add (void)
{
m = 0; n = 0;
}
 When a class contains a
constructor, it is guaranteed
that an object created by the
class will be initialized
automatically.
 add a ;
 Not only creates the object a
of type add but also initializes
its data members m and n to
zero.
4
By:-GouravKottawar
CONSTRUCTORS
 There is no need to write any statement to invoke the
constructor function.
 If a ‘normal’ member function is defined for zero
initialization, we would need to invoke this function for
each of the objects separately.
 A constructor that accepts no parameters is called the
default constructor.
 The default constructor for class A is A : : A ( )
continue …
5
By:-GouravKottawar
CHARACTERISTICS OF CONSTRUCTORS
 They should be declared in the public section.
 They are invoked automatically when the objects are
created.
 They do not have return types, not even void and they
cannot return values.
6
By:-GouravKottawar
CHARACTERISTICS OF CONSTRUCTORS
 They cannot be inherited, though a derived class can
call the base class constructor.
 Like other C++ functions, Constructors can have
default arguments.
 Constructors can not be virtual.
continue …
7
By:-GouravKottawar
CHARACTERISTICS OF CONSTRUCTORS
 We can not refer to their addresses.
 An object with a constructor (or destructor) can not be
used as a member of a union.
 They make ‘implicit calls’ to the operators new and
delete when memory allocation is required.
continue …
8
By:-GouravKottawar
CONSTRUCTORS
 When a constructor is declared for a class
initialization of the class objects becomes mandatory.
continue …
9
By:-GouravKottawar
PARAMETERIZED CONSTRUCTORS
 It may be necessary to initialize the various data
elements of different objects with different values
when they are created.
 This is achieved by passing arguments to the
constructor function when the objects are created.
 The constructors that can take arguments are called
parameterized constructors.
10
By:-GouravKottawar
PARAMETERIZED CONSTRUCTORS
class add
{
int m, n ;
public :
add (int, int) ;
------
};
add : : add (int x, int y)
{
m = x; n = y;
}
 When a constructor is
parameterized, we must pass
the initial values as
arguments to the constructor
function when an object is
declared.
 Two ways Calling:
o Explicit
 add sum = add(2,3);
o Implicit
 add sum(2,3)
 Shorthand method
continue …
11
By:-GouravKottawar
MULTIPLE CONSTRUCTORS IN A CLASS
 C + + permits to use more than one constructors in
a single class.
 Add( ) ; // No arguments
 Add (int, int) ; // Two arguments
12
By:-GouravKottawar
MULTIPLE CONSTRUCTORS IN A CLASS
class add
{
int m, n ;
public :
add ( ) {m = 0 ; n = 0 ;}
add (int a, int b)
{m = a ; n = b ;}
add (add & i)
{m = i.m ; n = i.n ;}
};
 The first constructor receives
no arguments.
 The second constructor
receives two integer
arguments.
 The third constructor receives
one add object as an
argument.
continue …
13
By:-GouravKottawar
MULTIPLE CONSTRUCTORS IN A CLASS
class add
{
int m, n ;
public :
add ( ) {m = 0 ; n = 0
;}
add (int a, int b)
{m = a ; n = b ;}
add (add & i)
{m = i.m ; n = i.n
;}
};
 Add a1;
 Would automatically
invoke the first constructor
and set both m and n of a1
to zero.
 Add a2(10,20);
 Would call the second
constructor which will
initialize the data members
m and n of a2 to 10 and 20
respectively.
continue …
14
By:-GouravKottawar
MULTIPLE CONSTRUCTORS IN A CLASS
class add
{
int m, n ;
public :
add ( ) {m = 0 ; n = 0
;}
add (int a, int b)
{m = a ; n = b ;}
add (add & i)
{m = i.m ; n = i.n
;}
};
 Add a3(a2);
 Would invoke the third
constructor which copies
the values of a2 into a3.
 This type of constructor is
called the “copy
constructor”.
 Construction Overloading
 More than one constructor
function is defined in a
class.
continue …
15
By:-GouravKottawar
MULTIPLE CONSTRUCTORS IN A CLASS
class complex
{
float x, y ;
public :
complex ( ) { }
complex (float a)
{ x = y = a ; }
complex (float r, float i)
{ x = r ; y = i }
------
};
 complex ( ) { }
 This contains the empty
body and does not do
anything.
 This is used to create
objects without any initial
values.
continue …
16
By:-GouravKottawar
MULTIPLE CONSTRUCTORS IN A CLASS
 C + + compiler has an implicit constructor which
creates objects, even though it was not defined in
the class.
 This works well as long as we do not use any other
constructor in the class.
 However, once we define a constructor, we must
also define the “do-nothing” implicit constructor.
continue …
17
By:-GouravKottawar
CONSTRUCTORS WITH DEFAULT
ARGUMENTS
 It is possible to define constructors with default
arguments.
 Consider complex (float real, float imag = 0);
 The default value of the argument imag is zero.
 complex C1 (5.0) assigns the value 5.0 to the real
variable and 0.0 to imag.
 complex C2(2.0,3.0) assigns the value 2.0 to real and
3.0 to imag.
18
By:-GouravKottawar
CONSTRUCTORS WITH DEFAULT
ARGUMENTS
 A : : A ( )  Default constructor
 A : : A (int = 0)  Default argument
constructor
 The default argument constructor can be called with
either one argument or no arguments.
 When called with no arguments, it becomes a
default constructor.
continue …
19
By:-GouravKottawar
DYNAMIC INITIALIZATION OF OBJECTS
 Providing initial value to objects at run time.
 Advantage – We can provide various
initialization
formats, using overloaded
constructors.
This provides the flexibility of using
different format of data at run time
depending upon the situation.
20
By:-GouravKottawar
COPY CONSTRUCTOR
A copy constructor is used to declare and initialize an
object from another object.
integer (integer & i) ;
integer I 2 ( I 1 ) ; or integer I 2 = I 1 ;
The process of initializing through a copy constructor is
known as copy initialization.
21
By:-GouravKottawar
COPY CONSTRUCTOR
The statement
I 2 = I 1;
will not invoke the copy constructor.
If I 1 and I 2 are objects, this statement is legal and
assigns the values of I 1 to I 2, member-by-member.
continue …
22
By:-GouravKottawar
COPY CONSTRUCTOR
 A reference variable has been used as an argument to
the copy constructor.
 We cannot pass the argument by value to a copy
constructor.
continue …
23
By:-GouravKottawar
DYNAMIC CONSTRUCTORS
 The constructors can also be used to allocate memory
while creating objects.
 This will enable the system to allocate the right amount
of memory for each object when the objects are not of
the same size.
24
By:-GouravKottawar
DYNAMIC CONSTRUCTORS
 Allocation of memory to objects at the time of their
construction is known as dynamic construction of
objects.
 The memory is created with the help of the new
operator.
continue …
25
By:-GouravKottawar
DESTRUCTORS
 A destructor is used to destroy the objects that have
been created by a constructor.
 Like constructor, the destructor is a member function
whose name is the same as the class name but is
preceded by a tilde.
eg: ~ integer ( ) { }
26
By:-GouravKottawar
DESTRUCTORS
 A destructor never takes any argument nor does it
return any value.
 It will be invoked implicitly by the compiler upon exit
from the program – or block or function as the case
may be – to clean up storage that is no longer
accessible.
continue …
27
By:-GouravKottawar
DESTRUCTORS
 It is a good practice to declare destructors in a
program since it releases memory space for further
use.
 Whenever new is used to allocate memory in the
constructor, we should use delete to free that memory.
continue …
28
By:-GouravKottawar

More Related Content

What's hot

C++ and OOPS Crash Course by ACM DBIT | Grejo Joby
C++ and OOPS Crash Course by ACM DBIT | Grejo JobyC++ and OOPS Crash Course by ACM DBIT | Grejo Joby
C++ and OOPS Crash Course by ACM DBIT | Grejo JobyGrejoJoby1
 
Constructors and destructors
Constructors and destructorsConstructors and destructors
Constructors and destructorsNilesh Dalvi
 
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
 
Constructors and Destructors
Constructors and DestructorsConstructors and Destructors
Constructors and DestructorsKeyur Vadodariya
 
Oop Constructor Destructors Constructor Overloading lecture 2
Oop Constructor  Destructors Constructor Overloading lecture 2Oop Constructor  Destructors Constructor Overloading lecture 2
Oop Constructor Destructors Constructor Overloading lecture 2Abbas Ajmal
 
Constructor and desturctor
Constructor and desturctorConstructor and desturctor
Constructor and desturctorSomnath Kulkarni
 
Operator overloading
Operator overloadingOperator overloading
Operator overloadingabhay singh
 
Operator Overloading & Type Conversions
Operator Overloading & Type ConversionsOperator Overloading & Type Conversions
Operator Overloading & Type ConversionsRokonuzzaman Rony
 
Operator overloading in C++
Operator overloading in C++Operator overloading in C++
Operator overloading in C++Ilio Catallo
 
operator overloading & type conversion in cpp over view || c++
operator overloading & type conversion in cpp over view || c++operator overloading & type conversion in cpp over view || c++
operator overloading & type conversion in cpp over view || c++gourav kottawar
 
Operator_Overloaing_Type_Conversion_OOPC(C++)
Operator_Overloaing_Type_Conversion_OOPC(C++)Operator_Overloaing_Type_Conversion_OOPC(C++)
Operator_Overloaing_Type_Conversion_OOPC(C++)Yaksh Jethva
 
Operator Overloading
Operator OverloadingOperator Overloading
Operator OverloadingNilesh Dalvi
 
Constructor in c++
Constructor in c++Constructor in c++
Constructor in c++Jay Patel
 

What's hot (18)

Constructor and destructor
Constructor  and  destructor Constructor  and  destructor
Constructor and destructor
 
C++ and OOPS Crash Course by ACM DBIT | Grejo Joby
C++ and OOPS Crash Course by ACM DBIT | Grejo JobyC++ and OOPS Crash Course by ACM DBIT | Grejo Joby
C++ and OOPS Crash Course by ACM DBIT | Grejo Joby
 
Constructors and destructors
Constructors and destructorsConstructors and destructors
Constructors and destructors
 
Lecture5
Lecture5Lecture5
Lecture5
 
Constructor and destructor
Constructor and destructorConstructor and destructor
Constructor and destructor
 
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)
 
Constructors and Destructors
Constructors and DestructorsConstructors and Destructors
Constructors and Destructors
 
Constructor
ConstructorConstructor
Constructor
 
Oop Constructor Destructors Constructor Overloading lecture 2
Oop Constructor  Destructors Constructor Overloading lecture 2Oop Constructor  Destructors Constructor Overloading lecture 2
Oop Constructor Destructors Constructor Overloading lecture 2
 
Constructor and desturctor
Constructor and desturctorConstructor and desturctor
Constructor and desturctor
 
Operator overloading
Operator overloadingOperator overloading
Operator overloading
 
Operator Overloading & Type Conversions
Operator Overloading & Type ConversionsOperator Overloading & Type Conversions
Operator Overloading & Type Conversions
 
14 operator overloading
14 operator overloading14 operator overloading
14 operator overloading
 
Operator overloading in C++
Operator overloading in C++Operator overloading in C++
Operator overloading in C++
 
operator overloading & type conversion in cpp over view || c++
operator overloading & type conversion in cpp over view || c++operator overloading & type conversion in cpp over view || c++
operator overloading & type conversion in cpp over view || c++
 
Operator_Overloaing_Type_Conversion_OOPC(C++)
Operator_Overloaing_Type_Conversion_OOPC(C++)Operator_Overloaing_Type_Conversion_OOPC(C++)
Operator_Overloaing_Type_Conversion_OOPC(C++)
 
Operator Overloading
Operator OverloadingOperator Overloading
Operator Overloading
 
Constructor in c++
Constructor in c++Constructor in c++
Constructor in c++
 

Similar to constructor & destructor in cpp

Constructors in C++.pptx
Constructors in C++.pptxConstructors in C++.pptx
Constructors in C++.pptxRassjb
 
chapter-9-constructors.pdf
chapter-9-constructors.pdfchapter-9-constructors.pdf
chapter-9-constructors.pdfstudy material
 
Constructors & Destructors [Compatibility Mode].pdf
Constructors & Destructors [Compatibility Mode].pdfConstructors & Destructors [Compatibility Mode].pdf
Constructors & Destructors [Compatibility Mode].pdfLadallaRajKumar
 
Constructors and destructors in C++
Constructors and destructors in  C++Constructors and destructors in  C++
Constructors and destructors in C++RAJ KUMAR
 
Constructor& destructor
Constructor& destructorConstructor& destructor
Constructor& destructorchauhankapil
 
04. constructor & destructor
04. constructor & destructor04. constructor & destructor
04. constructor & destructorHaresh Jaiswal
 
Constructor and destructor
Constructor and destructorConstructor and destructor
Constructor and destructorrajshreemuthiah
 
ConsTRUCTION AND DESTRUCTION
ConsTRUCTION AND DESTRUCTIONConsTRUCTION AND DESTRUCTION
ConsTRUCTION AND DESTRUCTIONShweta Shah
 
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 Conceptsdharawagh9999
 
CONSTRUCTORS IN C++ +2 COMPUTER SCIENCE
CONSTRUCTORS IN C++ +2 COMPUTER SCIENCECONSTRUCTORS IN C++ +2 COMPUTER SCIENCE
CONSTRUCTORS IN C++ +2 COMPUTER SCIENCEVenugopalavarma Raja
 
constructors and destructors
constructors and destructorsconstructors and destructors
constructors and destructorsAkshaya Parida
 
vb.net Constructor and destructor
vb.net Constructor and destructorvb.net Constructor and destructor
vb.net Constructor and destructorsuraj pandey
 
Class notes(week 3) on class objects and methods
Class notes(week 3) on class objects and methodsClass notes(week 3) on class objects and methods
Class notes(week 3) on class objects and methodsKuntal Bhowmick
 

Similar to constructor & destructor in cpp (20)

Constructors in C++.pptx
Constructors in C++.pptxConstructors in C++.pptx
Constructors in C++.pptx
 
chapter-9-constructors.pdf
chapter-9-constructors.pdfchapter-9-constructors.pdf
chapter-9-constructors.pdf
 
Constructors and destructors
Constructors and destructorsConstructors and destructors
Constructors and destructors
 
Constructors & Destructors [Compatibility Mode].pdf
Constructors & Destructors [Compatibility Mode].pdfConstructors & Destructors [Compatibility Mode].pdf
Constructors & Destructors [Compatibility Mode].pdf
 
Constructors and destructors in C++
Constructors and destructors in  C++Constructors and destructors in  C++
Constructors and destructors in C++
 
Constructor& destructor
Constructor& destructorConstructor& destructor
Constructor& destructor
 
Constructor,destructors cpp
Constructor,destructors cppConstructor,destructors cpp
Constructor,destructors cpp
 
04. constructor & destructor
04. constructor & destructor04. constructor & destructor
04. constructor & destructor
 
constructor.ppt
constructor.pptconstructor.ppt
constructor.ppt
 
Constructor and destructor
Constructor and destructorConstructor and destructor
Constructor and destructor
 
Constructors destructors
Constructors destructorsConstructors destructors
Constructors destructors
 
ConsTRUCTION AND DESTRUCTION
ConsTRUCTION AND DESTRUCTIONConsTRUCTION AND DESTRUCTION
ConsTRUCTION AND DESTRUCTION
 
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 & Destructors
Constructors  & DestructorsConstructors  & Destructors
Constructors & Destructors
 
CONSTRUCTORS IN C++ +2 COMPUTER SCIENCE
CONSTRUCTORS IN C++ +2 COMPUTER SCIENCECONSTRUCTORS IN C++ +2 COMPUTER SCIENCE
CONSTRUCTORS IN C++ +2 COMPUTER SCIENCE
 
constructors and destructors
constructors and destructorsconstructors and destructors
constructors and destructors
 
Constructors and Destructor in C++
Constructors and Destructor in C++Constructors and Destructor in C++
Constructors and Destructor in C++
 
vb.net Constructor and destructor
vb.net Constructor and destructorvb.net Constructor and destructor
vb.net Constructor and destructor
 
Class notes(week 3) on class objects and methods
Class notes(week 3) on class objects and methodsClass notes(week 3) on class objects and methods
Class notes(week 3) on class objects and methods
 
5 Constructors and Destructors
5 Constructors and Destructors5 Constructors and Destructors
5 Constructors and Destructors
 

More from gourav kottawar

operator overloading & type conversion in cpp
operator overloading & type conversion in cppoperator overloading & type conversion in cpp
operator overloading & type conversion in cppgourav kottawar
 
constructor & destructor in cpp
constructor & destructor in cppconstructor & destructor in cpp
constructor & destructor in cppgourav kottawar
 
classes & objects in cpp
classes & objects in cppclasses & objects in cpp
classes & objects in cppgourav kottawar
 
working file handling in cpp overview
working file handling in cpp overviewworking file handling in cpp overview
working file handling in cpp overviewgourav kottawar
 
pointers, virtual functions and polymorphisms in c++ || in cpp
pointers, virtual functions and polymorphisms in c++ || in cpppointers, virtual functions and polymorphisms in c++ || in cpp
pointers, virtual functions and polymorphisms in c++ || in cppgourav kottawar
 
exception handling in cpp
exception handling in cppexception handling in cpp
exception handling in cppgourav kottawar
 
cpp input & output system basics
cpp input & output system basicscpp input & output system basics
cpp input & output system basicsgourav kottawar
 
classes & objects in cpp overview
classes & objects in cpp overviewclasses & objects in cpp overview
classes & objects in cpp overviewgourav kottawar
 
SQL || overview and detailed information about Sql
SQL || overview and detailed information about SqlSQL || overview and detailed information about Sql
SQL || overview and detailed information about Sqlgourav kottawar
 
SQL querys in detail || Sql query slides
SQL querys in detail || Sql query slidesSQL querys in detail || Sql query slides
SQL querys in detail || Sql query slidesgourav kottawar
 
Rrelational algebra in dbms overview
Rrelational algebra in dbms overviewRrelational algebra in dbms overview
Rrelational algebra in dbms overviewgourav kottawar
 
overview of database concept
overview of database conceptoverview of database concept
overview of database conceptgourav kottawar
 
Relational Model in dbms & sql database
Relational Model in dbms & sql databaseRelational Model in dbms & sql database
Relational Model in dbms & sql databasegourav kottawar
 
DBMS information in detail || Dbms (lab) ppt
DBMS information in detail || Dbms (lab) pptDBMS information in detail || Dbms (lab) ppt
DBMS information in detail || Dbms (lab) pptgourav kottawar
 
security and privacy in dbms and in sql database
security and privacy in dbms and in sql databasesecurity and privacy in dbms and in sql database
security and privacy in dbms and in sql databasegourav kottawar
 
The system development life cycle (SDLC)
The system development life cycle (SDLC)The system development life cycle (SDLC)
The system development life cycle (SDLC)gourav kottawar
 

More from gourav kottawar (20)

operator overloading & type conversion in cpp
operator overloading & type conversion in cppoperator overloading & type conversion in cpp
operator overloading & type conversion in cpp
 
constructor & destructor in cpp
constructor & destructor in cppconstructor & destructor in cpp
constructor & destructor in cpp
 
classes & objects in cpp
classes & objects in cppclasses & objects in cpp
classes & objects in cpp
 
expression in cpp
expression in cppexpression in cpp
expression in cpp
 
basics of c++
basics of c++basics of c++
basics of c++
 
working file handling in cpp overview
working file handling in cpp overviewworking file handling in cpp overview
working file handling in cpp overview
 
pointers, virtual functions and polymorphisms in c++ || in cpp
pointers, virtual functions and polymorphisms in c++ || in cpppointers, virtual functions and polymorphisms in c++ || in cpp
pointers, virtual functions and polymorphisms in c++ || in cpp
 
exception handling in cpp
exception handling in cppexception handling in cpp
exception handling in cpp
 
cpp input & output system basics
cpp input & output system basicscpp input & output system basics
cpp input & output system basics
 
basics of c++
basics of c++basics of c++
basics of c++
 
classes & objects in cpp overview
classes & objects in cpp overviewclasses & objects in cpp overview
classes & objects in cpp overview
 
SQL || overview and detailed information about Sql
SQL || overview and detailed information about SqlSQL || overview and detailed information about Sql
SQL || overview and detailed information about Sql
 
SQL querys in detail || Sql query slides
SQL querys in detail || Sql query slidesSQL querys in detail || Sql query slides
SQL querys in detail || Sql query slides
 
Rrelational algebra in dbms overview
Rrelational algebra in dbms overviewRrelational algebra in dbms overview
Rrelational algebra in dbms overview
 
overview of database concept
overview of database conceptoverview of database concept
overview of database concept
 
Relational Model in dbms & sql database
Relational Model in dbms & sql databaseRelational Model in dbms & sql database
Relational Model in dbms & sql database
 
DBMS information in detail || Dbms (lab) ppt
DBMS information in detail || Dbms (lab) pptDBMS information in detail || Dbms (lab) ppt
DBMS information in detail || Dbms (lab) ppt
 
security and privacy in dbms and in sql database
security and privacy in dbms and in sql databasesecurity and privacy in dbms and in sql database
security and privacy in dbms and in sql database
 
The system development life cycle (SDLC)
The system development life cycle (SDLC)The system development life cycle (SDLC)
The system development life cycle (SDLC)
 
Software documentation
Software documentationSoftware documentation
Software documentation
 

Recently uploaded

Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfchloefrazer622
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Krashi Coaching
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsanshu789521
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdfssuser54595a
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactdawncurless
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application ) Sakshi Ghasle
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Celine George
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityGeoBlogs
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxGaneshChakor2
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsKarinaGenton
 
PSYCHIATRIC History collection FORMAT.pptx
PSYCHIATRIC   History collection FORMAT.pptxPSYCHIATRIC   History collection FORMAT.pptx
PSYCHIATRIC History collection FORMAT.pptxPoojaSen20
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13Steve Thomason
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introductionMaksud Ahmed
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxiammrhaywood
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3JemimahLaneBuaron
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionSafetyChain Software
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformChameera Dedduwage
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingTechSoup
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxmanuelaromero2013
 

Recently uploaded (20)

Arihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdfArihant handbook biology for class 11 .pdf
Arihant handbook biology for class 11 .pdf
 
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
Kisan Call Centre - To harness potential of ICT in Agriculture by answer farm...
 
Presiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha electionsPresiding Officer Training module 2024 lok sabha elections
Presiding Officer Training module 2024 lok sabha elections
 
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
18-04-UA_REPORT_MEDIALITERAСY_INDEX-DM_23-1-final-eng.pdf
 
Accessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impactAccessible design: Minimum effort, maximum impact
Accessible design: Minimum effort, maximum impact
 
Hybridoma Technology ( Production , Purification , and Application )
Hybridoma Technology  ( Production , Purification , and Application  ) Hybridoma Technology  ( Production , Purification , and Application  )
Hybridoma Technology ( Production , Purification , and Application )
 
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
Incoming and Outgoing Shipments in 1 STEP Using Odoo 17
 
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Bikash Puri  Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Bikash Puri Delhi reach out to us at 🔝9953056974🔝
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
CARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptxCARE OF CHILD IN INCUBATOR..........pptx
CARE OF CHILD IN INCUBATOR..........pptx
 
Science 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its CharacteristicsScience 7 - LAND and SEA BREEZE and its Characteristics
Science 7 - LAND and SEA BREEZE and its Characteristics
 
PSYCHIATRIC History collection FORMAT.pptx
PSYCHIATRIC   History collection FORMAT.pptxPSYCHIATRIC   History collection FORMAT.pptx
PSYCHIATRIC History collection FORMAT.pptx
 
The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13The Most Excellent Way | 1 Corinthians 13
The Most Excellent Way | 1 Corinthians 13
 
microwave assisted reaction. General introduction
microwave assisted reaction. General introductionmicrowave assisted reaction. General introduction
microwave assisted reaction. General introduction
 
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptxSOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
SOCIAL AND HISTORICAL CONTEXT - LFTVD.pptx
 
Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3Q4-W6-Restating Informational Text Grade 3
Q4-W6-Restating Informational Text Grade 3
 
Mastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory InspectionMastering the Unannounced Regulatory Inspection
Mastering the Unannounced Regulatory Inspection
 
A Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy ReformA Critique of the Proposed National Education Policy Reform
A Critique of the Proposed National Education Policy Reform
 
Grant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy ConsultingGrant Readiness 101 TechSoup and Remy Consulting
Grant Readiness 101 TechSoup and Remy Consulting
 
How to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptxHow to Make a Pirate ship Primary Education.pptx
How to Make a Pirate ship Primary Education.pptx
 

constructor & destructor in cpp

  • 1. CONSTRUCTOR & DESTRUCTOR Chap 61 By:-GouravKottawar
  • 2. CONTENTS 6.1 Constructor 6.2 Parameterized Constructor 6.3 Multiple Constructor in a Class 6.4 Constructors with Default Arguments 6.5 Dynamic Initialization of Objects 6.6 Copy Constructor 6.7 Dynamic Constructor 6.8 Const Object 6.9 Destructor 2 By:-GouravKottawar
  • 3. CONSTRUCTORS  A constructor is a special member function whose task is to initialize the objects of its class.  It is special because its name is same as the class name.  The constructor is invoked whenever an object of its associated class is created.  It is called constructor because it constructs the values of data members of the class. 3 By:-GouravKottawar
  • 4. CONSTRUCTOR - EXAMPLE class add { int m, n ; public : add (void) ; ------ }; add :: add (void) { m = 0; n = 0; }  When a class contains a constructor, it is guaranteed that an object created by the class will be initialized automatically.  add a ;  Not only creates the object a of type add but also initializes its data members m and n to zero. 4 By:-GouravKottawar
  • 5. CONSTRUCTORS  There is no need to write any statement to invoke the constructor function.  If a ‘normal’ member function is defined for zero initialization, we would need to invoke this function for each of the objects separately.  A constructor that accepts no parameters is called the default constructor.  The default constructor for class A is A : : A ( ) continue … 5 By:-GouravKottawar
  • 6. CHARACTERISTICS OF CONSTRUCTORS  They should be declared in the public section.  They are invoked automatically when the objects are created.  They do not have return types, not even void and they cannot return values. 6 By:-GouravKottawar
  • 7. CHARACTERISTICS OF CONSTRUCTORS  They cannot be inherited, though a derived class can call the base class constructor.  Like other C++ functions, Constructors can have default arguments.  Constructors can not be virtual. continue … 7 By:-GouravKottawar
  • 8. CHARACTERISTICS OF CONSTRUCTORS  We can not refer to their addresses.  An object with a constructor (or destructor) can not be used as a member of a union.  They make ‘implicit calls’ to the operators new and delete when memory allocation is required. continue … 8 By:-GouravKottawar
  • 9. CONSTRUCTORS  When a constructor is declared for a class initialization of the class objects becomes mandatory. continue … 9 By:-GouravKottawar
  • 10. PARAMETERIZED CONSTRUCTORS  It may be necessary to initialize the various data elements of different objects with different values when they are created.  This is achieved by passing arguments to the constructor function when the objects are created.  The constructors that can take arguments are called parameterized constructors. 10 By:-GouravKottawar
  • 11. PARAMETERIZED CONSTRUCTORS class add { int m, n ; public : add (int, int) ; ------ }; add : : add (int x, int y) { m = x; n = y; }  When a constructor is parameterized, we must pass the initial values as arguments to the constructor function when an object is declared.  Two ways Calling: o Explicit  add sum = add(2,3); o Implicit  add sum(2,3)  Shorthand method continue … 11 By:-GouravKottawar
  • 12. MULTIPLE CONSTRUCTORS IN A CLASS  C + + permits to use more than one constructors in a single class.  Add( ) ; // No arguments  Add (int, int) ; // Two arguments 12 By:-GouravKottawar
  • 13. MULTIPLE CONSTRUCTORS IN A CLASS class add { int m, n ; public : add ( ) {m = 0 ; n = 0 ;} add (int a, int b) {m = a ; n = b ;} add (add & i) {m = i.m ; n = i.n ;} };  The first constructor receives no arguments.  The second constructor receives two integer arguments.  The third constructor receives one add object as an argument. continue … 13 By:-GouravKottawar
  • 14. MULTIPLE CONSTRUCTORS IN A CLASS class add { int m, n ; public : add ( ) {m = 0 ; n = 0 ;} add (int a, int b) {m = a ; n = b ;} add (add & i) {m = i.m ; n = i.n ;} };  Add a1;  Would automatically invoke the first constructor and set both m and n of a1 to zero.  Add a2(10,20);  Would call the second constructor which will initialize the data members m and n of a2 to 10 and 20 respectively. continue … 14 By:-GouravKottawar
  • 15. MULTIPLE CONSTRUCTORS IN A CLASS class add { int m, n ; public : add ( ) {m = 0 ; n = 0 ;} add (int a, int b) {m = a ; n = b ;} add (add & i) {m = i.m ; n = i.n ;} };  Add a3(a2);  Would invoke the third constructor which copies the values of a2 into a3.  This type of constructor is called the “copy constructor”.  Construction Overloading  More than one constructor function is defined in a class. continue … 15 By:-GouravKottawar
  • 16. MULTIPLE CONSTRUCTORS IN A CLASS class complex { float x, y ; public : complex ( ) { } complex (float a) { x = y = a ; } complex (float r, float i) { x = r ; y = i } ------ };  complex ( ) { }  This contains the empty body and does not do anything.  This is used to create objects without any initial values. continue … 16 By:-GouravKottawar
  • 17. MULTIPLE CONSTRUCTORS IN A CLASS  C + + compiler has an implicit constructor which creates objects, even though it was not defined in the class.  This works well as long as we do not use any other constructor in the class.  However, once we define a constructor, we must also define the “do-nothing” implicit constructor. continue … 17 By:-GouravKottawar
  • 18. CONSTRUCTORS WITH DEFAULT ARGUMENTS  It is possible to define constructors with default arguments.  Consider complex (float real, float imag = 0);  The default value of the argument imag is zero.  complex C1 (5.0) assigns the value 5.0 to the real variable and 0.0 to imag.  complex C2(2.0,3.0) assigns the value 2.0 to real and 3.0 to imag. 18 By:-GouravKottawar
  • 19. CONSTRUCTORS WITH DEFAULT ARGUMENTS  A : : A ( )  Default constructor  A : : A (int = 0)  Default argument constructor  The default argument constructor can be called with either one argument or no arguments.  When called with no arguments, it becomes a default constructor. continue … 19 By:-GouravKottawar
  • 20. DYNAMIC INITIALIZATION OF OBJECTS  Providing initial value to objects at run time.  Advantage – We can provide various initialization formats, using overloaded constructors. This provides the flexibility of using different format of data at run time depending upon the situation. 20 By:-GouravKottawar
  • 21. COPY CONSTRUCTOR A copy constructor is used to declare and initialize an object from another object. integer (integer & i) ; integer I 2 ( I 1 ) ; or integer I 2 = I 1 ; The process of initializing through a copy constructor is known as copy initialization. 21 By:-GouravKottawar
  • 22. COPY CONSTRUCTOR The statement I 2 = I 1; will not invoke the copy constructor. If I 1 and I 2 are objects, this statement is legal and assigns the values of I 1 to I 2, member-by-member. continue … 22 By:-GouravKottawar
  • 23. COPY CONSTRUCTOR  A reference variable has been used as an argument to the copy constructor.  We cannot pass the argument by value to a copy constructor. continue … 23 By:-GouravKottawar
  • 24. DYNAMIC CONSTRUCTORS  The constructors can also be used to allocate memory while creating objects.  This will enable the system to allocate the right amount of memory for each object when the objects are not of the same size. 24 By:-GouravKottawar
  • 25. DYNAMIC CONSTRUCTORS  Allocation of memory to objects at the time of their construction is known as dynamic construction of objects.  The memory is created with the help of the new operator. continue … 25 By:-GouravKottawar
  • 26. DESTRUCTORS  A destructor is used to destroy the objects that have been created by a constructor.  Like constructor, the destructor is a member function whose name is the same as the class name but is preceded by a tilde. eg: ~ integer ( ) { } 26 By:-GouravKottawar
  • 27. DESTRUCTORS  A destructor never takes any argument nor does it return any value.  It will be invoked implicitly by the compiler upon exit from the program – or block or function as the case may be – to clean up storage that is no longer accessible. continue … 27 By:-GouravKottawar
  • 28. DESTRUCTORS  It is a good practice to declare destructors in a program since it releases memory space for further use.  Whenever new is used to allocate memory in the constructor, we should use delete to free that memory. continue … 28 By:-GouravKottawar