C + + - model, dat is gebaseerd op de algemene programmering, die in zekere mate onafhankelijk is van een bepaald soort code schrijven, model is een blauwdruk voor het creëren van de generieke klasse of functie of formule.Als we de bibliotheek containers en algoritmes zijn voorbeelden van algemene programmering, gebruik heeft gemaakt van het concept van het model, met verschillende containers, een gemeenschappelijke definitie van de vector, bijvoorbeeld de definitie van, maar we kunnen veel verschillende soorten steun, bijvoorbeeld, vector < int > of vector <. >,,, je kan het gebruik van modellen te definiëren en het soort functie, laten we eens kijken hoe ze werken: de functie van een model, het model, de functie van de algemene vorm van: gedefinieerd als volgt:, model < klasse > terug - functie (de lijst van parameters) {///////de functies van het lichaam), hier, aard van de functie van de reserve voor de naam van de gegevens.Deze naam kan worden in functie van de volgende definitie gebruiken, is een functie van het model, de terugkeer van de twee de maximale waarden voor patiënten, met inbegrip van:< hoe een bibliotheek >met inbegrip van < snaren > met behulp van namespace SOA; model < typename t T > in totaal & max (t% AMP% van totaal A, T - totaal & b) {terugkeer < b.?B:a;} in de Main () {int i = 39; in de J = 20; cout < < "Max (I, J):" < < max (I, J) < < endl; de dubbele f1 = 13,5; de dubbele F2 = 20,7; cout < < "Max (F1, f2):" < < max (F1, f2) < < endl; reeks S1 = "hallo"; reeks S2 = "World"; cout < < "Max (1, 2):" < < max (S1, S2) < < endl; terugkeer 0;}, als we verzamelen en het hierboven), zou de productie van "de volgende -, Max (I, J): 39 max (F1, f2): 20,7 Max (1, 2): World, klasse Template:, net als we kunnen" functie templates, we kunnen ook "klasse templates.Een algemene verklaring van een algemene vorm als volgt:, model < klasse > - klasse {....}, hier, het type, de naam is een vervanging vormen, worden aangewezen als een soort worden geconcretiseerd.Je kan met behulp van een komma 's lijst meer dan een algemene definitie van de aard van de gegevens, bijvoorbeeld als volgt omschreven categorieën van Stack < > dat een algemene methode te duwen en pop van Stack elementen, met inbegrip van:< hoe een bibliotheek >met inbegrip van de vector >< met inbegrip van documenten cstdlib >< met inbegrip van < snaren >met inbegrip van < stdexcept > met behulp van namespace SOA; model < T - klasse > Stack {particuliere: vector < T > elems; ///////elementen op openbare: ongeldig (t totaal &); ///////- elementen worden ongeldig; ///////- elementen () t - top () totaal terugkeer elementen; //////////////totaal van booleaanse lege () {terug, als het leeg is.De terugkeer elems.empty ();}}; model < klasse T> nietig Stack< T>:: - (T - const& elem) {///////kopie van het element elems.push_back voegt aangenomen (elem);} 1 < klasse T> nietig Stack< T>:: POP () {als (elems.empty () gooi out_of_range (") {Stack< >::: een pop () '"); ///////remove laatste element elems.pop_back (});} 1 < klasse T> T - Stack< T>:: De top van een totaal {als (elems.empty () () () {gooi out_of_range Stack< "> - (de)::: lege stack"); de kopie van het laatste element van de terugkeer) ///////elems.back (); de terugkeer in de Main () {} {Stack< proberen; int> intStack; ///////ints Stack van Stack< string> stringSta;- akkoord; ////////int Stack intstack die stapel. - (7); cout < < intstack. Top () < < endl; ///////die string Stack stringstack. Duw ("hallo"); cout < < stringstack. Top () < < std::endl; stringstack. - (de); stringstack. POP ();} vangst (abnormale type & ex) (gewoonlijk < < met uitzondering van: "wat" < < zoals () < < endl; is van 1}}, als de samensteller van deze code, dit zal leiden tot de volgende resultaten: Hallo, 7 uitzondering: de stapel < >::: lege Stack POP (),
Previous:In
Next Page:C