Stel, u wilt een functie , Mult , dat twee getallen vermenigvuldigt maken . U kunt een aparte versie voor elk data type , dat is de overbelasting methode te schrijven , of u kunt gebruik maken van C + + -functie templates en hebben een handtekening functie in plaats van drie . C + + -functie templates automatiseren soort overhandigen , meer expressieve kracht geven de gebruiker van de bibliotheek en de kosten van het onderhoud van code . Wat je nodig hebt Geavanceerd C + + C + + compiler met IDE , zoals Bloodshed 's Toon Meer Aanwijzingen Overload 1 een functie die getallen van het type int vermenigvuldigt , float en double : int Mult ( int a , int b ) { return ( a * b ) ; } float Mult ( float a , float b ) { return ( a * b ) ; } double Mult ( double a , dubbele b ) { return ( a * b ) ; } 2 Doe het zelfde ding dat Stap 1 is , met behulp van C + + -functie templates : sjabloon T Mult ( T a , T b ) { return ( a * b ) ; } 3 Vergelijk stap 2 naar stap 1 . De extra regel code boven de functie-definitie in stap 2 ingevoegd lijkt een goede afweging voor het herhalen van de functie lichaam twee of meer keer . 4 Terug naar de code van stap 2 . T is de typenaam . De klasse keyword betekent dat T elke identiteit kan nemen . Het is een algemeen type dat de compiler interpreteert on the fly , afhankelijk welke parameter de gebruiker gaat naar het. Dus T kan een geheel getal zijn , een float , een tweepersoons-of een klasse die het vermenigvuldigen exploitant gedefinieerd heeft , anders wordt het vermenigvuldigen operatie blijft undefined Test 5 grondig de functie handtekening die sjablonen gebruikt . . Tests uitvoeren met alle verwachte soorten gegevens om ervoor te zorgen dat u geen onverwachte resultaten krijgen .
|