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