What is a Conversion Constructor?

A conversion constructor is a constructor that allows implicit or explicit conversion from another type to your class type.

Syntax

class MyClass {
public:
    MyClass(int x);  // This is a conversion constructor from int to MyClass
};

How it works

If you write:

MyClass obj = 5;  // `5` is an int, but gets converted to MyClass using MyClass(int)

This happens because of the conversion constructor.


What is a Conversion Operator?

A conversion operator is a special member function that converts your class to another type.

Syntax

class MyClass {
public:
    operator int() const;  // Allows conversion from MyClass to int
};

How it works

If you write:

MyClass obj;
int x = obj;  // Calls operator int(), converts MyClass to int

So:

Concept Direction
Conversion Constructor int -> MyClass
Conversion Operator MyClass -> int