Cyberithub

Learn 3 Types of Constructors in C++ with best examples

Advertisements

In this article, we will go through the understanding of Constructors in C++.

Constructors in C++ are special member functions which are created when the object is created or defined and its task is to initialize the object of its class. It is called constructor because it constructs the values of data members of the class.

Advertisements

A constructor has the same name as the class and it doesn’t have any return type. It is invoked whenever an object of its associated class is created. More about Constructor in C++

Learn 3 Types of Constructors in C++ with best examples 2

Learn 3 Types of Constructors in C++

When a class is instantiated, even if we don’t declare a constructor, compiler automatically creates one for the program. This compiler created constructor is called default constructor.

Advertisements

Constructors

Constructor is a special member function of a class which enables an object of that class to initialize itself when it is created. Name of the constructor is same as the class name. Hence called special member function. Whenever an object of its associated class is created, constructor is invoked. We will go through all 3 types of Constructors in C++ with best examples.

Below is the syntax to declare and define constructor:-

Advertisements
Class Employee
{
int x, y;
public:
Employee(void);             // constructor declared
.....
.....

};
Employee :: Employee(void)    //  constructor defined
{
x=0;
y=0;
}

Types of constructors

There are 3 types of constructors in C++.

1. Default Constructor

A constructor that accepts no parameters is called Default Constructor. Compiler supplies a default constructor if no such constructor is defined.

Advertisements

Characteristics of constructor functions are:

  • It should be declared in public scope.
  • It is invoked automatically whenever an object is created.
  • It doesn't have any return type, not even void. Hence, it can't return values.
  • It can't be inherited, though a derived class can call the base class constructor.
  • It can't be virtual
  • An object with a constructor can't be used as a member of a union.

Example

#include <iostream>
using namespace std;

class Number {
public:
int a, b;
Number()        // Default Constructor
{
a = 10;
b = 20;
}
};

int main()
{

Number e;
cout << "a: " << e.a << endl
<< "b: " << e.b;
return 1;
}

Output

a: 10
b: 20

2. Parameterized Constructor

The Constructors that can take arguments are called parameterized constructor. Sometimes, it may be necessary to initialize the data members of different objects with different values when they are created. Hence parameterized constructors are used.

Example

#include <iostream>
using namespace std;

class Point {
int a, b;

public:
Point(int x1, int y1)         // Parameterized Constructor
{
a = x1;
b = y1;
}

int getA()
{
return a;
}
int getB()
{
return b;
}
};
int main()
{
Point p1(5, 15);            // Constructor called
cout << "p1.a = " << p1.getA() << ", p1.b = " << p1.getB();        // Access values assigned by constructor
return 0;
}

Output

p1.a = 5, p1.b = 15

3. Copy Constructor

Copy constructor is used for creating a new object as a copy of an existing object. It is a standard approach of copying objects in C++. It takes reference to an object of the same class as an argument.

Example

#include <iostream>
using namespace std;

class code
{
int id;
public:
code()
{}
code(int a)
{
id = a;
}
code(code &x)
{
id = x.id;
}
void display(void)
{
cout<< id;
}
};
int main()
{
code A(100);
code B(A);
code C = A;
code D;
D = A;

cout<< "\n id of A:" ; A.display();
cout<< "\n id of B:" ; B.display();
cout<< "\n id of C:" ; C.display();
cout<< "\n id of D:" ; D.display();

}

Output

id of A:100
id of B:100
id of C:100
id of D:100

Leave a Comment