Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

C++ | Operator Overloading | Question 7

  • Last Updated : 28 Jun, 2021

Output of following program?

Take a step-up from those "Hello World" programs. Learn to implement data structures like Heap, Stacks, Linked List and many more! Check out our Data Structures in C course to start learning today.




#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

My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!