A conversion constructor is a constructor that allows implicit or explicit conversion from another type to your class type.
class MyClass {
public:
MyClass(int x); // This is a conversion constructor from int to MyClass
};
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.
A conversion operator is a special member function that converts your class to another type.
class MyClass {
public:
operator int() const; // Allows conversion from MyClass to int
};
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 |