Conversion Operator : output of the following Program
#includeusing namespace std;class A { public: A(int ii = 0) : i(ii) {} void show() { cout << "i = " << i << endl;} private: int i;};class B { public: B(int xx) : x(xx) {} operator A() const { return A(x); } private: int x;};void g(A a){ a.show(); }int main() { B b(10); g(b); g(20); getchar(); return 0;} i = 10
i = 20
Since there is a Conversion constructor in class A, integer value can be assigned to objects of class A and function call g(20) works. Also, there is a conversion operator overloaded in class B, so we can call g() with objects of class B.

Comments
Post a Comment