C++ | Plantillas | Pregunta 3

#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

Deja una respuesta

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