Open In App
Related Articles

C++ | Operator Overloading | Question 6

Improve
Improve
Improve
Like Article
Like
Save Article
Save
Report issue
Report
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

Last Updated : 28 Jun, 2021
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads