Constructors in C++
C++ Constructors
On this page we will discuss about constructors in C++. Constructors are special functions in C++, these are used widely to initialise the objects with values for a class. Whenever any object is created at run time, the constructor is called by the compiler which initialises the defined value.
Constructors in C++ Language
Syntax
Defining Internally to the class
class Demo {
char c;
public:
Demo(){
// Constructor declaration here
// User defined assignments for initialisation
}
};Defining Externally to the class
class Demo
{
char c;
public:
Demo();
//Constructor Declared here
};
Demo::Demo()
// Constructor definition here
{
// initialisation of values by the user
char = "PrepInsta";
} Why Constructors are used?
- When an object is created, the memory is assigned the object entities and some garbage values are assigned to those.
- These garbage values may cause hinderance in the programs, as it may be needed to only assign very specific values to entities/data.
- Constructors do not have any return argument.
- They have the same name as the name of the class and are enclosed within the class
- C++ has its own version of constructor which assigns some garbage or random values to object entities.
Types of Constructors –
The following are the types of constructors in C++ –
- Default
- Parameterized
- Copy
Default Constructors
- Highlights – No Passing Arguments in the constructor.
For Example –
Run
#include <iostream>
using namespace std;
class Demo
{
public:
int i;
Demo(){
i=8000;
}
};
int main()
{
Demo demo;
cout << demo.i;
return 0;
}
Output
8000
The constructor, will be called and assign the value of i as 8000.
Parameterised Constructors
- Highlights – Arguments are passed with the constructor.
For example –
Run
#include <iostream>
using namespace std;
class Demo
{
public:
int i;
Demo(int val)
{
i=val;
}
};
int main()
{
//setting parameterised values
Demo demo(6000);
Demo demo2(12000);
cout << demo.i<<endl;;
cout << demo2.i;
return 0;
}
Output
6000
12000
Copy Constructors
- Highlights – Arguments are passed as objects and object is copied as instantiated as a new object.
- The object can be passed in multiple ways
- Demo d2 = d1;
- Demo d3(d1);
- While the following doesn’t call the copy constructor but only assigns the value with the help of assignment operator
- Demo d4;
- d4 = d1
For example –
Run
#include <iostream>
using namespace std;
class Demo
{
private:
int a, b;
public:
Demo()
{ }
Demo(int a1, int b1) {
a = a1;
b = b1;
}
// Copy constructor example here
Demo(const Demo &d2)
{
a = d2.a;
b = d2.b;
}
int getA()
{
return a;
}
int getB()
{
return b;
}
};
int main()
{
Demo d1(5000, 6000);
// We have called a copy constructor
Demo d2 = d1;
// We have called a copy constructor
Demo d3(d1);
Demo d4;
// Assignment operation happens there is no call to copy constructor
d4 = d1;
// displaying values for both constructors
cout << "d1.a = " << d1.getA() << ", d1.b = " << d1.getB();
cout << "\nd2.a = " << d2.getA() << ", d2.b = " << d2.getB();
cout << "\nd3.a = " << d3.getA() << ", d3.b = " << d3.getB();
cout << "\nd4.a = " << d4.getA() << ", d4.b = " << d4.getB();
return 0;
}
Output –
d1.a = 5000, d1.b = 6000 d2.a = 5000, d2.b = 6000
d3.a = 5000, d3.b = 6000 d4.a = 5000, d4.b = 6000
Prime Course Trailer
Related Banners
Get PrepInsta Prime & get Access to all 200+ courses offered by PrepInsta in One Subscription
Get over 200+ course One Subscription
Courses like AI/ML, Cloud Computing, Ethical Hacking, C, C++, Java, Python, DSA (All Languages), Competitive Coding (All Languages), TCS, Infosys, Wipro, Amazon, DBMS, SQL and others

Login/Signup to comment