Stel, u wilt bouwen van een C + + -klasse aan complexe getallen omdat C + + bevat geen gegevenstype voor hen . Het " Complex" class moet omgaan nummers van het type int , float en double . U kunt dezelfde code drie keer herhalen , of je kan het een keer schrijven en gebruiken dat generieke data types . Op het einde , zal je klas kijken als een van de STL container klassen . Instructies 1 Wennen aan de syntax sjabloon als u niet reeds . Om een template klasse declareren , plaatst u de volgende regel code direct boven de klasse verklaring , zoals weergegeven : sjabloon class Complex { Twitter //enz. .. < br > 2 Merk op dat " template " en " klasse " zijn sleutelwoorden . " T " is de naam die u aan de generieke data type. T kan de vorm aannemen van een int , float of dubbele nemen . Je moet altijd omsluiten "klasse" en "T " in punthaken . U kunt ook gebruik maken van het trefwoord " typenaam " in plaats van " klasse . " Hoewel deze zoekwoorden hebben een iets andere betekenis in C + + , voor de toepassing van deze tutorial , ze zijn gelijkwaardig . 3 Gebruik " T " in de klas lichaam verklaring waar u generieke verwerking . Staafgegevens " echte " en " IMAG " zijn van het type T , omdat ze kunnen de identiteit van elk type nummer nemen . Het lid functie Real ( ) wordt prototyped met T omdat het aantal van het type int , float of double kan terugkeren : sjabloon class Complex { t echt, imag ; publiek : < br > Complex ( const T r , const T i ) : real ( ( T ) 0 ) , ( ( T ) 0 ) { } T real ( ) const ; Twitter //enz. .. Goedkope 4 Herhaal de template definitie voor elk lid functie die u buiten de klas lichaam gedefinieerd . Ook plaatst de T parameter binnen punthaken en plaats deze tussen de naam van de klasse en de reikwijdte exploitant , als volgt : sjabloon T Complex < T > :: Real ( ) const { return echt; } 5 Aantonen een complex object dat gebruikt int en een die float gebruikt : int main ( ) { Complex ni ( 4 , -5 ) ; //form 4 - j5 Complex nf ( 4.f , - 5.f ) ; //formulier 4.0 - j5.0 cout cout } 6 Leer hoe je container klassen, zoals gebruikt vector < T > en algoritmen, zoals copy ( ) . Bestudeer de STL . Sinds de Standard Template Library is een generieke bibliotheek opgebouwd van sjablonen , het is een uitstekende plek om te leren hoe u generieke klassen met behulp van templates te bouwen .
|