C++ | Sobrecarga del operador | Pregunta 7

Salida del siguiente programa?

#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) llamado
(B) fun(Prueba 2) llamado
(C) Error del compilador: Llamada ambigua a fun()

Respuesta: (C)
Explicación: La clase Prueba tiene dos operadores de conversión sobrecargados, int y Prueba2. Y hay dos fun() para int y Test2.
Cuestionario de esta pregunta

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *