Open In App

C++ | Operator Overloading | Question 6

Like Article
Like
Save Article
Save
Share
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