Constructors in C++
In this C++ tutorial, we are going to discuss the constructors with examples.
Suppose you have to initialize thousands of values of a data member with some initial value. But doing that kind of task manually is not easy. In OOPS we use constructors in a class to initialize data members with some initial value. It can also be used to declare run-time memory to data members.
What is Constructor?
A special member function of a class in object-oriented programming that initializes objects of a class is a constructor. It is an instance method that usually has the same name as the class and use to set values of a member of an object to default or a user-defined value. It gets called automatically when an object is created. A compiler identifies a given member function as a constructor by its name and return type.
Properties of Constructor
- A constructor has the same name as the class in C++.
- A constructor does not have a return type.
- It gets called automatically called when an object is created.
- Constructors cannot be inherited.
- Constructors can be declared using any access modifiers.
C++ code to implement a constructor in a class
Below is given a program as an example to implement a constructor:
#include<bits/stdc++.h> using namespace std; class codespeedy { private : int x; public : codespeedy() // declaring constructor { x=3; } void show() { cout<<"Value of x is : "<<x<<endl; } }; int main() { codespeedy c; // object creation c.show(); // calling data member of class using object }
Running the above program will give the result as the output given below:
Value of x is : 3
Some Types of Constructor
1.) Default Constructor
A constructor which does not take any argument is a default constructor. The default constructor has no parameters.
Below is an example of C++ code to implement default constructor in a class:
#include<bits/stdc++.h> using namespace std; class codespeedy { private : int a; int b; public : codespeedy() // declaring constructor { a=1; b=2; } void show() { cout<<"Value of a is : "<<a<<endl; cout<<"Value of b is : "<<b<<endl; } }; int main() { codespeedy c; // object creation c.show(); // calling data member of class using object }
Output:
Value of a is : 1 Value of b is : 2
2.) Parameterized Constructor
It is possible to initialize objects in a class by passing arguments to the constructors. This type of constructor is known as a parameterized constructor. The constructor can be called explicitly or implicitly.
codespeedy c = codespeedy (5,6); // explicit call codespeedy c (5,6); // Implicit call
Let’s see the C++ code to implement the parameterized constructor:
#include<bits/stdc++.h> using namespace std; class codespeedy { private : int a; int b; public : codespeedy(int x , int y) // declaring constructor { a=x; b=y; } void show() { cout<<"Value of a is : "<<a<<endl; cout<<"Value of b is : "<<b<<endl; } }; int main() { codespeedy c(5,6); // Constructor called c.show(); // calling data member of class using object }
Output:
Value of a is : 5 Value of b is : 6
Note:- If a constructor is not specified, then C++ compiler generates a default constructor with no parameters.
Leave a Reply