C++ | Operator Overloading | Question 6
Predict the output
#include<iostream> using namespace std; class A { int i; public : A( int ii = 0) : i(ii) {} void show() { cout << i << endl; } }; class B { int x; public : B( int xx) : x(xx) {} operator A() const { return A(x); } }; void g(A a) { a.show(); } int main() { B b(10); g(b); g(20); return 0; } |
(A) Compiler Error
(B)
10 20
(C)
20 20
(D)
10 10
Answer: (B)
Explanation: Note that the class B has as conversion operator overloaded, so an object of B can be converted to that of A.
Also, class A has a constructor which can be called with single integer argument, so an int can be converted to A.
Quiz of this Question
Please Login to comment...