Рубрики

C ++ | Перегрузка оператора | Вопрос 7

Вывод следующей программы?

#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) весело (Int) называется
(B) весело (Тест 2) называется
(C) Ошибка компилятора: неоднозначный вызов fun ()

Ответ: (с)
Объяснение: В классе Test перегружены два оператора преобразования: int и Test2. И есть два fun () для int и Test2.
Тест на этот вопрос

Рекомендуемые посты:

C ++ | Перегрузка оператора | Вопрос 7

0.00 (0%) 0 votes