📜  C ++ |运算符重载|问题7

📅  最后修改于: 2021-06-01 03:01:58             🧑  作者: Mango

以下程序的输出?

#include 
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)有趣的
(B)好玩(测试2)叫
(C)编译器错误:对fun()的歧义调用答案: (C)
说明:类Test具有两个重载的转换运算符,即int和Test2。 int和Test2有两个fun()。
这个问题的测验

想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。