En lenguajes de alto nivel, usamos sobrecarga para funciones, que se emplea en funciones con funciones diferentes pero con el mismo número de parámetros, y se necesitan plantillas para diferentes tipos y el mismo número de parámetros
applet C++
- #include<iostream>
- using namespace std;
- template <class T>
- T max(T a,T b)
- {
- return a>b?a:b;
- }
- int main()
- {
- int a,b;cin>>a>>b;
- cout<<max(a,b);
- return 0;
- }
Copiar código Este es un ejemplo sencillo: la palabra clave plantilla<clase T> es el inicio de una estructura de plantilla, por lo que no necesitamos escribir varios códigos en C++ con la misma función repetidamente al buscar el valor máximo Ten en cuenta que al llamar a una función, su tipo se empareja automáticamente. No hace falta que se muestre. Lo anterior es el uso más básico, pero nos encontraremos con las siguientes situaciones
- #include<iostream>
- using namespace std;
- template <class T,class E>
- E max(T a,E b)
- {
- return a>b?a:b;
- }
- int main()
- {
- int a;float b;cin>>a>>b;
- cout<<max(a,b);
- return 0;
- }
Copiar código Qué hacer cuando nuestra función necesita dos tipos diferentes, creo que puedes entenderlo después de leer el código anterior. Pero bueno, lo que tienen en común es que los tipos se emparejan automáticamente. De hecho, también tenemos errores: si no podemos emparejar bien el tipo, es decir, "la cabeza de toro no está bien", entonces la coincidencia automática del compilador cambiará el tipo de parámetro según las reglas de conversión implícita de tipos, lo que eventualmente llevará a la pérdida de precisión del resultado. Mira el código, puedes intentarlo.
- #include<iostream>
- using namespace std;
- template <class T,class E>
- E max(T a,E b)
- {
- return a>b?a:b;
- }
- int main()
- {
- int a;float b;cin>>a>>b;
- cout<<max(a,b);
- return 0;
- }
Copiar código El contenido anterior no es muy difícil, pero también hay muchos lugares que se pueden explorar, no sé cuáles son vuestras opiniones |
|