|
|
Objavljeno na 4. 10. 2014 20:45:19
|
|
|

V visokonivojskih jezikih uporabljamo preobremenitev za funkcije, ki se uporablja pri funkcijah z različnimi funkcijami, a z enakim številom parametrov, predloge pa so potrebne za različne tipe in enako število parametrov
C++ applet
- #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;
- }
Kopiraj kodo To je preprost primer: predloga ključne besede<razred T> je začetek strukture predloge, tako da nam ni treba večkrat pisati več C++ kod z isto funkcijo, ko iščemo največjo vrednost Upoštevajte, da se ob klicu funkcije njen tip samodejno ujema. Ni ga treba prikazovati. Zgornje je najbolj osnovna uporaba, vendar se bomo srečali z naslednjimi situacijami
- #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;
- }
Kopiraj kodo Kaj storiti, ko naša funkcija potrebuje dve različni vrsti, mislim, da lahko to razumete po branju zgornje kode. Kakorkoli že, kar imata skupnega, je, da se tipi samodejno ujemata. Pravzaprav imamo tudi napake, če ne moremo dobro ujeti tipa, torej "bikova glava ni pravilna", bo samodejno ujemanje prevajalnika spremenilo tip parametra glede na pravila implicitnega pretvorbe tipov, kar bo sčasoma povzročilo izgubo natančnosti rezultata. Poglej kodo, lahko poskusiš.
- #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;
- }
Kopiraj kodo Zgornja vsebina ni zelo zahtevna, a obstaja tudi veliko področij, ki jih lahko raziščemo, ne vem, kakšno je vaše mnenje |
|
Prejšnji:c Mini program, ki ga je napisal InlineNaslednji:Objavil sem logotip, narejen za moj forum, in ga pokazal vsem!
|