¿Producción?
#include <iostream> using namespace std; template <class T> T max (T &a, T &b) { return (a > b)? a : b; } template <> int max <int> (int &a, int &b) { cout << "Called "; return (a > b)? a : b; } int main () { int a = 10, b = 20; cout << max <int> (a, b); }
(A) 20
(B) Llamado 20
(C) Error del compilador
Respuesta: (B)
Explicación: El programa anterior es un ejemplo de especialización de plantilla. En algún momento queremos un comportamiento diferente de una plantilla de función/clase para un tipo de datos en particular. Para esto, podemos crear una versión especializada para ese tipo de datos en particular.
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