Skip to content
Related Articles

Related Articles

Improve Article

C++ | Operator Overloading | Question 7

  • Last Updated : 28 Jun, 2021

Output of following program?




#include <iostream>
using namespace std;
class Test2
{
    int y;
};
  
class Test
{
    int x;
    Test2 t2;
public:
    operator Test2 ()  { return t2; }
    operator int () { return x; }
};
  
void fun ( int x) { cout << "fun(int) called"; }
void fun ( Test2 t ) { cout << "fun(Test 2) called"; }
  
int main()
{
    Test t;
    fun(t);
    return 0;
}

(A) fun(int) called
(B) fun(Test 2) called
(C) Compiler Error: Ambiguous call to fun()


Answer: (C)

Explanation: The class Test has two conversion operators overloaded, int and Test2. And there are two fun() for int and Test2.

Quiz of this Question

Want to learn from the best curated videos and practice problems, check out the C Foundation Course for Basic to Advanced C.
My Personal Notes arrow_drop_up
Recommended Articles
Page :