Conversion Constructor in C++
Conversion Constructor
On this page we will discuss about conversion constructor in C++. Constructors are special functions in C++, these are used widely to initialize the objects with values for a class. Conversion constructor is a single parameter constructor.It is declared without the function specifier explicit.Conversion Constructor in C++ Language
The compiler uses conversion constructor to convert objects from the type of the single parameter to the type of the conversion constructor’s class.
Usage of conversion constructor
- In return value of a function
- As a parameter to a function
New way of calling Constructor
Usual way of calling a constructor is ClassName(variables).
For example: PrepInsta(int x) or PrepInsta(int x, int y)
Using conversion constructor we can call constructor by using assignment operator (=).
For Example –
1. ClassName obj = val (PrepInsta obj = 10)
2. ClassName obj = {val1, val2 ..} (PrepInsta obj = {10, 20})
Single Value Conversion Constructor
Let us look at the code below –
#include <iostream> using namespace std; // base class class Animal { public: void jump() { cout << "I can jump!" << endl; } void sit() { cout << "I can sit!" << endl; } }; // derived class class Dog : public Animal { public: void bark() { cout << "I can bark! Woof woof!!" << endl; } }; int main() { // Create object of the Dog class Dog doggy; // Calling members of the base class doggy.jump(); doggy.sit(); // Calling member of the derived class doggy.bark(); return 0; }
Output
I can jump! I can sit! I can bark! Woof woof!!
Multiple Parameters Conversion Constructor
Let us look at the example below to understand this case –
#include <iostream> using namespace std; class PrepInsta { int x, y; public: void display(){ cout << "The values are: " << x << " and " << y << endl; } // parameterized constructor PrepInsta(int a, int b){ x = a; y = b; } }; int main() { PrepInsta p1(50, 50); p1.display(); // Parameterized conversion constructor invoked using multiple variables p1 = {100, 200}; p1.display(); PrepInsta p2 = {200, 200}; p2.display(); return 0; }
Output
The values are: 50 and 50 The values are: 100 and 200 The values are: 200 and 200
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