C++ Tutorial Index

C++ Tutorial C++ History C++ Installation C++ First Program C++ cin and cout C++ Data type C++ Variable C++ operator C++ Keywords

C++ Control Statements

C++ If C++ Nested if C++ If-else C++ If-else-if C++ Switch C++ Break C++ Continue C++ Goto C++ For loop C++ While loop C++ Do while loop

C++ Functions

C++ Call by Value C++ Call by Reference C++ Recursion Function C++ Inline function C++ Friend function

C++ Arrays

Single dimension array Two dimension array

C++ Strings

C++ Strings

C++ Inheritance

C++ Inheritance Single level Inheritance Multilevel Inheritance Multiple Inheritance Hierarchical Inheritance Hybrid Inheritance

C++ Polymorphism

C++ Polymorphism C++ Overloading C++ Overriding C++ Virtual Function

C++ Pointers

C++ Pointers C++ this pointer

C++ Exception Handling

C++ Exception Handling

C++ Constructors

C++ Constructors Default Constructor Parameterize Constructor Copy constructor Constructor Overloading Destructor

C++ File Handling

C++ File Handling C++ Writing to file C++ Reading file C++ Close file

Miscellaneous

C Vs C++ C++ Comments C++ Data Abstraction C++ Identifier C++ Memory Management C++ Storage Classes C++ Void Pointer C++ Array To Function C++ Expressions C++ Features C++ Interfaces C++ Encapsulation std::min in C++ External merge sort in C++ Remove duplicates from sorted array in C++ Precision of floating point numbers Using these functions floor(), ceil(), trunc(), round() and setprecision() in C++ C++ References C++ Friend Functions C++ Mutable keyword Unary Operators in C++ Initialize Array of objects with parameterized constructors in C++ Differences between #define & const in C/C++ C++ Program to Implement Shell Sort C++ Program to Implement Merge Sort Storage Classes in C Vector resize() in C++ Passing by Reference Vs. Passing by the pointer in C++ Free vs delete() in C++ goto statement in C and C++ C++ program to read string using cin.getline() C++ String Concatenation Heap Sort in C++ Swap numbers in C++ Input Iterators in C++ Fibonacci Series in C++ C ++ Program: Alphabet Triangle and Number Triangle C++ Program: Matrix Multiplication C++ Program to Print Fibonacci Triangle Stack in C++ Maps in C++ Queue in C++ C++ Bitset C++ Algorithms Priority Queue in C++ C++ Multimap C++ Deque Function Pointer in C++ Sizeof() Operators in C++ C++ array of Pointers free() Vs delete in C Timsort Implementation Using C++ CPP Templates C++ Aggregation C++ Enumeration C++ Math Functions C++ Object Class C++ Queue Initialize Vector in C++ Vector in C++ C++ STL Components Function overloading in C++ C++ Maximum Index Problem C++ find missing in the second array C++ Program to find the product array puzzle C++ Program To Find Largest Subarray With 0 Sum C++ Program To Move All Zeros To The End Of The Array C++ Program to find the element that occurs once C++ Program to find the largest number formed from an array Constructor Vs Destructor C++ Namespaces C++ OOPs Concept C++ Static C++ Structs C++ Try-Catch C++ User Defined Exceptions C++ Virtual Destructor C++ vs C# Malloc() and new in C++ Palindrome Number Program in C++ Snake Code in C++ Splitting a string in C++ Structure Vs Class in C++ Virtual Function Vs Pure Virtual Function C++ Bidirectional Iterators C++ Forward Iterators C++ Iterators C++ Output Iterators C++ Range-based For Loop Converting string into integer in C++ LCM Program in C++ Type conversion in C++ Add two numbers using the function in C++ Advantage and disadvantage friend function C++ Armstrong Number Program in C++ ATM machine program in C++ using functions Binary to Decimal in C++ Bit Manipulation in C++ C++ Constructor C++ Dijkstra Algorithm Using the Priority Queue C++ int into String C++ Signal Handling Decimal to Binary in C++ Decimal to Hexadecimal in C++ Decimal to Octal in C++ Factorial Program in C++ Function in C++ Hexadecimal to Decimal in C++ Octal to Decimal in C++ Reverse a Number in C++ Structure Vs Class in C++ C++ Forward Iterators C++ Output Iterators C++ Prime number program Constructor Overloading in C++ Different Ways to Compare Strings in C++ Program to convert infix to postfix expression in C++ SET Data Structure in C++ Upcasting and Downcasting in C++ Reverse an Array in C++ Fast Input and Output in C++ Delete Operator in C++ Copy elision in C++ C++ Date and Time C++ Bitwise XOR Operator Array of sets in C++ Binary Operator Overloading in C++ Binary Search in C++ Implementing the sets without C++ STL containers Scope Resolution Operator in C++ Smart pointers in C++ Types of polymorphism in C++

C++ Constructor

Constructor is a specific method in C ++ that is automatically called when an object is created. Typically, it is used to set the data members of a new object. In C++, the function Object () is referred to as a class or structure.

What distinguishes constructors from regular member functions?

  • The function Object () { [native code] } has the same name as the class.
  • Default although constructors do not have an input argument, Copy and Parameterized do. Input parameters are sent to constructors.
  • There is no return type for constructors.
  • When an object is formed, the function Object() { [native code] } is automatically invoked.
  • It must be shown in the classroom's public area.
  • If a function object () {[native code] is not specified, the C ++ compiler creates the default function object () {[native code] for the object (no parameters are expected and the body is empty).cpp-constructor1.png
C++ Constructor

Types of Constructor in C++

  • Default constructor
  • Parameterized constructor
  • Copy Constructor

Default Constructor

Constructors that take no arguments are called default constructors. When creating an object.

Example of a program containing constructor in C++:

#include <bits/stdc++.h>
#include <iostream>
using namespace std;
class construct
{
public:
int i,j; 
// Default Constructor
construct()
{
i= 23;
j= 45;
}
};
int main()
{
// Default constructor called automatically
// when the object is created
construct k
cout << "i: " << k.i << endl
<< "j: " << k.j;
return 1;
}

OUTPUT:

i: 23
j: 45

Explanation:

Even if we don't explicitly declare a function Object (), the compiler will offer a default function Object() implicitly.

Parameterized constructor

Arguments can be sent to the constructor. These parameters are often used to help start an object when it is created. Just add arguments to the parameterized function object (). The same way you would for any other task. Use arguments to initialize the object while defining the main body of the constructor.

Example of a program containing parameterized constructor in C++:

#include <stdlib>
#include <bits/stdc++.h>
#include <iostream>
using namespace std; 
class Const
{
private:
int i, j;




public:
// Parameterized Constructor
Const(int i1, int j1)
{
i = i1;
j = j1;
}
int getI()
{
return i;
}
int getJ()
{
return j;
}
};
int main()
{
// Constructor called
Const C1 (23, 34); 
// Access values assigned by constructor
cout << "C1.i = " << C1.getI() << ", C1.j = " << C1.getJ();
return 0;
}

OUTPUT:

 C1.i = 23 , C1.j = 34

Explanation:

The initial values must be passed as arguments to the function Object (). Function when an object is declared in a parameterized function Object (). It's possible that the standard method of object definition won't work. Constructors can be invoked either explicitly or implicitly.

NOTE: When objects are formed, it is used to initialize the various data components with distinct values. It's used to make constructors overloaded.

IMPORTANT: We can have more than one constructor in a class.

Copy Constructor

A copy function Object () is a member function that uses another object of the same class to initialize an object. When we declare one or more non-default constructors (with arguments) for a class, we need additionally provide a default constructor (without parameters), as the compiler will not give one in this situation. It is not required, but it is regarded best practice to declare a default function Object () at all times.

Example of program containing copy constructor in C++:

#include <iostream>
#include <stdlib>
#include <bits/stdc++.h>
using namespace std; 
class Const
{
private:
double i, j; 
public: 
// Non-default Constructor &
// default Constructor
Const (double Ci, double Cj)
{
i = Ci, j = Cj;
}
};
int main(void)
{
// Define an array of size
// 10 & of type point
// This line will cause error
Const x[26]; 
// Remove above line and program
// will compile without error
Const y = Const(1, 4);
}

OUTPUT:

error: point (double Ci, double Cj): expects 2 arguments, 0 provided

Explanation

In the above program in C++, If a new item is produced as a copy of an existing item, a copy maker is requested.

Another Example:

#include<iostream>
#Inlcude<stdlib>
#include<bits/stdc++.h>
using namespace std; 
class const
{
int i, j;
public:
const (int x = 14, int y = 34 )
{
i = x;
j = y;
}
void Display()
{
cout<< i << " " << j << endl;
}
};
int main()
{
const val;
val.Display();
return 0;
}

OUTPUT:

Parameterized constructor (Output will be 14,34)

Explanation:

The compiler does not produce the default function Object (). When we define any function Object () in a class. In this scenario, the same thing happens, but because the parameterized function Object () has default values for all of the parameters, it is called. However, if you specify default function Object () here, the compiler will throw an error (ambiguous call) since it won't know which function Object () to call.



ADVERTISEMENT
ADVERTISEMENT