Sett at du ønsker å lage en funksjon , mult , som multipliserer to tall. Du kan skrive en egen versjon for hver datatype , som er overbelastning metoden, eller du kan bruke C + + funksjon maler og har en funksjon signatur i stedet for tre . C + + funksjon maler automatisere typen overlate , gi biblioteket bruker mer uttrykksfulle kraft og redusere kostnadene for koden vedlikehold. Du trenger
Advanced C + + Online C + + kompilator med IDE , for eksempel Bloodshed er
Vis flere instruksjoner
en
Overload en funksjon som multipliserer tall av type int , float og double : en int Mult ( int a, int b ) {
avkastning ( a * b ) ;
}
float Mult ( float a, float b ) {
avkastning ( en * b ) ;
}
dobbel Mult (double a, double b ) {
avkastning ( a * b ) ;
}
2
Gjør det samme som trinn 1 gjør det, ved hjelp av C + + funksjon maler : en mal
T Mult (T a, T b ) {
avkastning ( a * b ) ;
}
3
sammenligning Trinn 2 til 1 . Den ekstra linje med kode inn over den funksjonen definisjonen i trinn to virker som en god tradeoff for å gjenta funksjonen kroppen to eller flere ganger .
4
Tilbake til koden av trinn 2 . T er TypeName . Klassen søkeordet betyr at T kan ta noen identitet. Det er en generisk type som kompilatoren tolker på fly avhengig av hvilken parameter brukeren går til det. Så T kan være et heltall , en dupp , en dobbel eller en klasse som har formere operatøren definert , ellers formere drift forblir udefinert
5
Test grundig funksjonen signatur som bruker maler. . Utføre tester med alle forventede datatyper for å sikre at du ikke får uventede resultater .