Homebreadcumb forward arrow iconBlogbreadcumb forward arrow iconFull Stack Developmentbreadcumb forward arrow iconWhat is Constructor Overloading In C++ : Characteristics and Types

What is Constructor Overloading In C++ : Characteristics and Types

Last updated:
24th May, 2021
Read Time
7 Mins
share image icon
In this article
Chevron in toc
View All
What is Constructor Overloading In C++ : Characteristics and Types

C++ is a commonly used Object-Oriented Programming Language in the industry. C++ is a pioneer programming language in OOP, developed by Bjarne Stroustrup at AT & T Bell Laboratories in the year 1979. The most frequently used feature of c++ could be to create a class in it. Within a class, we can create class members –methods and variables. 

Check out our free courses to get an edge over the competition.


Constructors are often used to create objects, or technically, create instances of an object. In most object-oriented programming languages, they also are overloaded. As in many programming languages, the name of the constructor is predetermined based on that of the class. This limits the named objects as there can be a single constructor. In a scenario where multiple constructors are required, they are implemented by using the overload functions.

In C++, the default constructors are without parameters. They are instantiated from the object members with corresponding default values. 

Ads of upGrad blog

Explore our Popular Software Engineering Courses

Check out upGrad’s Advanced Certification in Cloud Computing

You can have a fair idea of overloading concepts used in Object-Oriented Programming.  


A constructor (ctor) is a programming technique used to create an object in class-based object-oriented programming. A new object is created by calling a special-purpose subroutine. It is a member function of a class that, in turn, initializes objects of a class. This method accepts arguments. The supplied parameters are used by the base constructor and set member variables.

Check out upGrad’s Advanced Certification in DevOps

Characteristics of Constructor 

A constructor is a special member function of the class. It is different from a generic member function for the following reasons: 

  • Constructor member is scoped public
  • It has the same name as that of declaring class.  
  • The name is case-sensitive   
  • Constructors do not have a return type.  
  • The default constructor is implicitly created. 
  • When creating an object, the constructor gets called automatically. 
  • A constructor is not implicitly inherited.
  • It usually has different rules for scope modifiers.

Explore Our Software Development Free Courses

Types of Constructors

Default Constructors – The constructor having nil parameters and no arguments. They are compiler-generated implicit constructors.  

Parameterized Constructors are those through which you can pass arguments. The arguments initialize an object that was created. Create a parameterized constructor simply by adding parameters to it, similar we do for any other function. Use the parameters in the constructor’s body to initialize the object. This type of constructor is commonly used for overloading and also for initializing various data elements of objects with different initial values.   

Copy Constructor – It is a member function used to initialize an object using another object of the same class. The compiler, by default, creates a copy constructor for each class, following a member-wise copy between objects.

In-Demand Software Development Skills

Constructor in C++ 

In c++, a constructor is automatically called when an object (that is, the instance of a class) creates it. 

 If we do not specify a constructor, the c++ compiler generates a default constructor for us (expects no parameters and has the class name). 

A properly written constructor leaves the resulting object in a valid state.

upGrad’s Exclusive Software Development Webinar for you –

SAAS Business – What is So Different?


Constructor Overloading 

Constructor Overloading is a phenomenon of a constructor overloading another constructor. 

Given constructor can be overloaded, similar to the function overloading.

Overloaded constructors follow the same name as that of the class. However, it varies in several arguments. While creating an object, the type of arguments passed determines which constructor is being called. 

The availability of multiple constructors with different parameters helps to perform different tasks in programming. 

Learn C Programming Language Tutorials

Constructor Overloading in C++

In c++, there are multiple constructors in a class under the same name but a different list of arguments. This concept of constructor overloading in c++  is quite similar to function overloading.

Usually, you should create more than one constructor in a class to initialize member variables differently for objects. The criteria to behave constructors differently is to have a different number of parameters or different positioning or different data types for parameters.

Constructors that firmly create objects using a single class and return a new instance of the class are abstracted by the industry, which creates objects but can do different ways using different classes or different allocation schemes, such as object pools.

How Does Constructor Overloading Works In C++?

Let’s consider the example as shown below:

The code illustrated an example of constructor overloading in c++.

There are 2 constructors of class “calculate”:

  1. A default Constructor (without any parameters)
  2. The Constructor with three-parameter

And in the main() there are two objects created.

1. out: 

When it is created, it will automatically invoke the default constructor with no parameters. This is because while creating an object, there is no parameter passed. So, it matches the definition of first(Default Constructor). This will assign 0 values to all three variables for that object of the main class.

2. out2: 

When it is created, it will automatically invoke the constructor with 3 parameters. This is because while creating an object, only 1 parameter is passed. So, it matches the definition of the Second Constructor. This will assign 3 values (passed as parameters) to the variable for that object of the main class.

Ads of upGrad blog

Learn Software Engineering Courses online from the World’s top Universities. Earn Executive PG Programs, Advanced Certificate Programs, or Masters Programs to fast-track your career.


Understanding the programming concept for constructor overloading in c++ is a significant skill for programmers and system designers. Students in the stream of computer and computing-related programs can enhance their skills and technical credibilities, such as OOP concepts and code optimization. The resources and knowledge base at the upGrad portal encourages such professionals to gain the programming expertise to compete in the industry market. Additionally, you will gain an opportunity to explore professional networking and skill development. 

If you’re interested to learn more about full-stack software development, check out upGrad & IIIT-B’s Executive PG Program in Full-stack Software Development which is designed for working professionals and offers 500+ hours of rigorous training, 9+ projects and assignments, IIIT-B Alumni status, practical hands-on capstone projects & job assistance with top firms.


Rohan Vats

Blog Author
Software Engineering Manager @ upGrad. Passionate about building large scale web apps with delightful experiences. In pursuit of transforming engineers into leaders.

Frequently Asked Questions (FAQs)

1What are constructors in programming?

Constructors in programming are the functions whose main purpose is to initialize the object and perform other simple tasks. Constructors are used for object-oriented programming, which is a popular programming paradigm used. An object-oriented program thus contains objects which in turn have properties, methods and events. To create an object, you must use a constructor and to be able to use the object you must instantiate it.

2What is constructor overloading?

Constructor overloading means having more than one constructor with the same name. Constructors are methods invoked when an object is created. You have to use the same name for all the constructors which is the class name. This is done by declaration the constructor with a different number of arguments. If there are no arguments to pass, then the default constructor is invoked. If there is a single argument, then constructor that takes a single argument is invoked. If there are two or more arguments, then constructor that takes exactly two or more arguments is invoked.

3How to initialize objects using constructors?

Constructors are crucial when it comes to initialization of your classes. They are a special type of function that is used to create and initialize objects. Sometimes we don't want to create all fields in the class because they are not needed. If we create all fields, we should initialize all fields. In this case, we use default constructor and initialize the fields as we want. When you create a class, you can create one or more constructors inside the class. Thus, when you create objects for that particular class, you can easily call the constructor of that along with the arguments that you want to set. These arguments can be set as the values of the fields or attributes of the class whose constructor is called.

Explore Free Courses

Suggested Blogs

8 Exciting Full Stack Coding Project Ideas & Topics For Beginners
A Full stack developer is an engineer who can design and develop an end-to-end application independently by handling all the work of coding, databases
Read More

by upGrad

19 Feb 2024

17 Interesting HTML Project Ideas & Topics For Beginners [2024]
Summary In this article, you will learn 10 Interesting HTML Project Topics. Take a glimpse below. A tribute page A survey form Technical documentati
Read More

by Rohan Vats

19 Feb 2024

How to Open json File in Excel
What is JSON? JSON (JavaScript Object Notation) is a file format that is used for storing and exchanging data in the network. It is used to send data
Read More

by Rohan Vats

19 Feb 2024

JSP vs Servlet: Difference Between JSP & Servlet [2024]
Websites are collections of static files, for example, images, graphics, and HTML files. These websites are referred to as web applications if they pr
Read More

by Rohan Vats

19 Feb 2024

Java Developer Salary in India in 2024 [For Freshers & Experienced]
Wondering what is the range of Java developer salary in India? From choosing your first programming language to writing apps for Android and several
Read More

by Rohan Vats

19 Feb 2024

Polymorphism In OOPS: What is Polymorphism [Detailed Explanation]
Polymorphism in OOPs is inseparable and an essential concept of every object-oriented programming language. An object or reference basically can take
Read More

by Rohan Vats

19 Feb 2024

Literals In Java: Types of Literals in Java [With Examples]
Summary: In this article, you will learn about Literals in Java. Literals in Java Integral Literals Floating-Point Literals Char Literals String Lit
Read More

by Rohan Vats

19 Feb 2024

Top 30 Exception Handling Interview Questions and Answers [For Freshers & Experienced]
Exception handling is a concept that is implemented in algorithms to handle possible runtime errors, which may disrupt the normal flow of a program. S
Read More

by Rohan Vats

19 Feb 2024

Top 40 MySQL Interview Questions & Answers For Beginners & Experienced [2024]
Have a Data engineering or data science interview coming up? Need to practice some of the most asked MySQL interview questions? The article compiles t
Read More

by Rohan Vats

19 Feb 2024

Schedule 1:1 free counsellingTalk to Career Expert
footer sticky close icon