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