0% found this document useful (0 votes)
56 views12 pages

Constructors & Destructors: - By-Prof. Bhandare P. S. Sveri 'S COE (Poly), Pandharpur

The document discusses constructors and destructors in C++. It defines constructors as special member functions that initialize objects when they are created. There are different types of constructors including default, parameterized, and copy constructors. Parameterized constructors allow initializing objects with different values by passing arguments. Destructors are member functions that destroy objects when they are no longer needed.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
56 views12 pages

Constructors & Destructors: - By-Prof. Bhandare P. S. Sveri 'S COE (Poly), Pandharpur

The document discusses constructors and destructors in C++. It defines constructors as special member functions that initialize objects when they are created. There are different types of constructors including default, parameterized, and copy constructors. Parameterized constructors allow initializing objects with different values by passing arguments. Destructors are member functions that destroy objects when they are no longer needed.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 12

Name of staff:- Prof. Bhandare P.S.

Chapter 3
Constructors & Destructors
-by-
Prof. Bhandare P. S.
SVERI’s COE(Poly), Pandharpur

1
Subject: Object oriented programming (17432)
Name of staff:- Prof. Bhandare P.S.

Syllabus:
 3.1 Concepts of Constructors, Types of constructors: Default,
Parameterized, Copy.

 3.2 Overloaded Constructors: Multiple Constructors in a Class,


Constructors with default arguments.

 3.3 Destructors.

Assignment No 3.
 List four types of constructors. (2M)
 Write example code of constructor with default argument (example code
of constructor, only, not whole program). (2M)
 Explain concept of overloaded constructor in a class with example. (4M)
 Differentiate between constructor and destructor. (4M)
 What is overloaded constructor in a class? Explain with example. (4M)
 State any four characteristics of constructor. (4M)
 Explain the concept of parameterized constructor with example. (4M)
 Explain copy constructor with example. (4M)
 Write any four rules to define constructor in a class. (4M)
 What is destructor ? Give it’s syntax. How many destructors can be
defined in a single class ? (4M)
 Declare a class simple interest having data members as principle amount,
rate of interest, no. of years. The constructor will have default value of
interest as 11.5%. Accept this data for two objects. Calculate and display
simple interest for each object.
 Write a program to declare a class time having data member as hrs, min,
sec. Write a constructor to accept data and use display function for two
objects.
 Define a class distance having data members as feet and inches. Write
default as well as parameterized constructor and accept data for 2 objects.
Display the accepted data.

2
Subject: Object oriented programming (17432)
Name of staff:- Prof. Bhandare P.S.

About title of chapter :

 The title of chapter Constructor & destructor gives idea about the new
concept defined in C++.

 In this chapter we will get information defining constructors &


destructors.

 In this chapter students are going to learn new programming approach.

Central Idea of chapter

 Central Idea behind including this chapter in subject is that the student
will importance of constructor & destructor for the classes in OOP.

 Also Student will learn how programming can be organized in C++


language with the help of constructors & destructors.

Importance of chapter :

 Studying this chapter is important is because this chapter introduce new


concept in OOP language.

 Also this chapter include defining constructors & destructors.

 Also it will include different types of constructors.

Objectives of the chapter

 To study concepts of constructors & destructors.

 To study constructor definition & calling.

 To study types of constructors.

 To study overloaded constructors, multiple constructors.

 To study destructors.

3
Subject: Object oriented programming (17432)
Name of staff:- Prof. Bhandare P.S.

Introduction
 We have seen, examples of classes being implemented.

 In all the cases, we have used member functions such as putdata() and
setvalue() to provide initial values to the private member variables.

◦ E.g.

◦ A.input();

 invokes the member function input, which assigns the initial values to the
data items of object A.

 Similarly, the statement

◦ x.getdata(100,299.95);

 passes the initial values as arguments to the function getdata(), where


these values are assigned to the private variables of object x.

 All these 'function call' statements are used with the appropriate objects
that have already been created.

 These functions cannot be used to initialize the member variables at the


time of creation of their objects.

 C++ provides a special member function called the constructor which


enables an object to initialize itself when it is created.

 This is known as automatic initialization of objects.

 It also provides another member function called the destructor that


destroys the objects when they are no longer required.

Constructor
 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.

 The constructor is invoked whenever an object of its associated class is


created.

4
Subject: Object oriented programming (17432)
Name of staff:- Prof. Bhandare P.S.

It is called constructor because it constructs the values of data members of the


class.

 A constructor is declared and defined as follows:

 When a class contains a constructor like the one defined above, it is


guaranteed that an object created by the class will be initialized
automatically.

◦ E.g.

◦ integer Intl; // object Intl created

 not only creates the object Intl of type integer but also initializes its data
members m and n to zero.

 There is no need to write any statement to invoke the constructor function


(as we do with the normal member functions).

 If a 'normal' member function is defined for zero initialization, we would


need to invoke this function for each of the objects separately.

 This would be very inconvenient, if there are a large number of objects.


5
Subject: Object oriented programming (17432)
Name of staff:- Prof. Bhandare P.S.

 A constructor that accepts no parameters is called the default constructor.

 The default constructor for class A is A::A( )

 If no such constructor is defined, then the compiler supplies a default


constructor. Therefore a statement such as

◦ A a;

◦ invokes the default constructor of the compiler to create the object


a.

The constructor functions have some special characteristics.


 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 therefore, and they
cannot return values.

 They cannot be inherited, though a derived class can call the base class
construction.

 Like other C++ functions, they can have default arguments.

 Constructors cannot be virtual.

 We cannot refer to their addresses.

 An object with a constructor (or destructor) cannot be used as a member


of a union.

 They make 'implicit calls' to the operators new and delete when memory
allocation is required.

 Remember, when a constructor is declared for a class, initialization of the


class objects becomes mandatory.

6
Subject: Object oriented programming (17432)
Name of staff:- Prof. Bhandare P.S.

Parameterized Constructors
 The constructor integer(), defined above, initializes the data members of
all the objects to zero.

 However, in practice it may be necessary to initialize the various data


elements of different objects with different values when they are created.

 C++ permits us to achieve this objective by passing arguments to the


constructor function when the objects are created.

 The constructors that can take arguments are called parameterized


constructors.

 The constructor integer() may be modified to take arguments as shown


below:

class integer
{
int m, n;
public:
integer(int x, int y); // parameterized constructor
………….
………….
};
integer :: integer(int x, int y)
{
m=x ;
n= y;
}

7
Subject: Object oriented programming (17432)
Name of staff:- Prof. Bhandare P.S.

 When a constructor has been parameterized, the object declaration


statement such as integer intl;
 may not work, We must pass the initial values as arguments to the
constructor function when an object is declared.
 This can be done in two ways:
◦ By calling the constructor explicitly.
◦ By calling the constructor implicitly.
 The following declaration illustrates the first method:
 integer Intl = integer(0,100); //explicit cull
 This statement creates an integer object Intl and passes the values 0 and
100 to it.
 The second is implemented as follows:
 integer int1(0,100); // implicit call
 This method, sometimes called the shorthand method, is used very often
as it is shorter, looks better and is easy to implement.
 Remember, when the constructor is parameterized, we must provide
appropriate arguments for the constructor.

The constructor functions can also be defined as inline functions.


Example:
class integer
{
int m, n;
public:
integer(int x, int y) // Inline constructor {
m = x; y = n;
................
…………
} };

8
Subject: Object oriented programming (17432)
Name of staff:- Prof. Bhandare P.S.

The parameters of a constructor can be of any type except that of the


class to which it belongs.
For example,

◦ class A

◦ {

◦ public:

◦ A(A);

◦ }

◦ is illegal.

However, a constructor can accept a reference to its own class as a


parameter. Thus, the statement
◦ class A

◦ {

◦ public:

◦ A (A & ) ;

◦ };

◦ is valid. In such cases, the constructor is called the copy


constructor.

Constructor with default argument:


 However, the statement ABC a1(2.0, 3.0); assigns 2.0 to a and 3.0 to b.

 The actual parameter, when specified, overrides the default value.

 As pointed out earlier, the missing arguments must be the trailing ones.

 It is important to distinguish between the default constructor A::A() and the


default argument constructor A::A(int a=0) .

 The default argument constructor can be called with either one argument or no
arguments.

9
Subject: Object oriented programming (17432)
Name of staff:- Prof. Bhandare P.S.

 When called with no arguments, it becomes a default constructor.


 When both these forms are used in a class, it causes ambiguity for a statement
such as
 A a;
 The ambiguity is whether to 'call' A::A() or A::A(int = 0).

Copy Constructor
 A copy constructor is used to declare and initialize an object from another
object.
 For example, the statement
 Integer i2(i1);
 would define the object i2 and at the same time initialize it to the values of i1.
 Another form of this statement is integer
 i2 = i1;
 The process of initializing through a copy constructor is known as copy
initialization.
 A copy constructor takes a reference to an object of the same class as itself as
an argument

Destructors
 A destructor, as the name implies, is used to destroy the objects that have been
created by a constructor.
 Like a constructor, the destructor is a member function whose name is the same
as the class name but is preceded by a tilde.
 For example, the destructor for the class integer can be defined as shown
below:
 ~ integer(){ }
 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 for
block or function as the case may be to clean up storage that is no longer
accessible.
 It is a good practice to declare destructors in a program since it releases
memory space for future use.
 Whenever new is used to allocate memory in the constructors, we should use
delete to free that memory.

10
Subject: Object oriented programming (17432)
Name of staff:- Prof. Bhandare P.S.

Winter-15
 List four types of constructors. (2M)
 Write example code of constructor with default argument (example code of
constructor, only, not whole program). (2M)
 Explain concept of overloaded constructor in a class with example.(4M)
 Differentiate between constructor and destructor. (4M)
 State any four characteristics of constructor. (4M)

Summer-15
 Define constructor. State any two type of constructor. 2m
 Define constructor overloading. 2m
 Explain the concept of destructor in a class with example. (4M)
 Explain any two types of constructor with syntax and example. (4M)
 Explain the concept of parameterized constructor with example. (4M)
 Explain the concept of parameterized constructor with example. (4M)
 Explain copy constructor with example. (4M)

Winter-14
 What is copy constructor ? 2M
 Write any four rules to define constructor in a class. 4M
 What is destructor ? Give it’s syntax. How many destructors can be defined in a
single class ? 4M
 Explain constructor with default argument. 4M
 Explain overloaded constructor in a class with suitable example. 4M

Summer-14
 State the characteristics of destructor. 2M
 What is parameterized constructor? Give the syntax & example of it. 4M
 Illustrate the concept of constructor with default argument with suitable
example. 4M
 State any four characteristics of constructor. 4M
 Explain the concept of overloaded constructors in a class with suitable example.
4M
11
Subject: Object oriented programming (17432)
Name of staff:- Prof. Bhandare P.S.

Winter-13
 What is a parameterized constructor used in C++ ? 2M
 Describe the importance of destructors. 2M
 What is default constructor ? 2M
 What is meant by constructor overloading ? Explain the concept with proper
example. 4M

12
Subject: Object oriented programming (17432)

You might also like