Em linguagens de alto nível, usamos sobrecarga para funções, que é usada em funções com funções diferentes, mas com o mesmo número de parâmetros, e modelos são necessários para tipos diferentes e o mesmo 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 é um exemplo simples: a palavra-chave template<class T> é o início de uma estrutura de template, para que não precisemos escrever vários códigos C++ com a mesma função repetidamente ao buscar o valor máximo Note que, ao chamar uma função, seu tipo é automaticamente correspondido. Não precisa ser mostrado. O que foi dito acima é o uso mais básico, mas encontraremos as seguintes situações
- #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 O que fazer quando nossa função precisa de dois tipos diferentes, acho que você pode entender depois de ler o código acima. Mas, de qualquer forma, o que eles têm em comum é que os tipos são automaticamente combinados. Na verdade, também temos erros: se não conseguirmos corresponder bem o tipo, ou seja, "a cabeça de touro não está certa", então o emparelhamento automático do compilador alterará o tipo de parâmetro de acordo com as regras de conversão implícita de tipos, o que eventualmente levará à perda de precisão do resultado. Olhe o código, você pode tentar.
- #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 O conteúdo acima não é muito difícil, mas também há muitos lugares que podem ser explorados, não sei quais são suas opiniões |
|