#include <iostream> using namespace std; template <typename T> T max(T x, T y) { return (x > y)? x : y; } int main() { cout << max(3, 7) << std::endl; cout << max(3.0, 7.0) << std::endl; cout << max(3, 7.0) << std::endl; return 0; }
(A)
7 7.0 7.0
(B) Error del compilador en todas las instrucciones cout ya que no se especifica el tipo de datos.
(C) Error del compilador en la última instrucción cout ya que la llamada a max es ambigua.
(D) Ninguna de las anteriores
Respuesta: (C)
Explicación: La primera y segunda llamada a la función max es una llamada válida ya que ambos argumentos pasados son del mismo tipo de datos (es decir, int y float respectivamente). Pero la tercera llamada a la función max tiene argumentos de diferentes tipos de datos y, por lo tanto, generará un error del compilador en la última declaración de cout, ya que la llamada a max es ambigua. Por lo tanto, la opción C es correcta
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