Template osztályok, programozás C és C
Eltekintve a funkciók sablonokat is meghatározhatja sablon osztályokat. Ehhez hozzon létre egy osztályt, amely meghatározza az összes algoritmus, de a tényleges adattípus definiált paraméter, hogy hozzon létre egy class-irányító.
sablon
>
Ptip itt van egy paraméter-típusú, amely létrehozásakor megadott egy példányát az osztálynak. Ha szükséges, akkor meg többféle sablon segítségével egy listát, és a vesszőt az elválasztó.
Miután létrehozott egy sablont osztály, akkor létrehozhat egy konkrét esetben ennek az osztálynak segítségével a következő általános formája:
class_name <тип> kifogást;
Itt a típus a nevét az adatok típusát, amely akkor lép működésbe ebben az osztályban.
osztály-sablon tagsági függvények maguk sablonok automatikusan. Nem req-Gence kifejezetten jelzik, hogy sablonokat kulcsszavak Vågå sablont.
A következő program létrehoz egy sablon osztály verem, amely megfelel a szabványos stack „Kövessük-in - first out”. Ezt fel lehet használni, hogy végre a köteget bármilyen típusú adatokat. Az itt látható példában a halom karakter, számok és lebegőpontos számok.
// demonstrációs verem osztály template
#include
const int SIZE = 100;
// A sablon létrehozása osztály verem
sablon
int tos;
nyilvános:
verem ();
verem ();
void push (stype i);
Stype pop ();
>;
// konstruktor függvény verem
sablon
tos = 0;
cout <<"Stack Initialized\n";
>
/ * Feature-destructor stack
Ez a funkció nem szükséges. Benne van csak illusztrációk. * /
sablon
verem ()
cout <<"Stack Destroyed\n";
>
// tér tárgyat a verem
sablon
if (tos == SIZE) cout <<"Stack is full. \n";
return;
>
Stck [tos] = i;
tos ++;
>
// letölteni az objektumot a verem
sablon
ha (Tos == 0) cout <<"Stack underflow.\n";
vissza 0;
>
tos -;
vissza Stck [tos];
>
int main ()
kazal
kazal
kazal
int i;
// használni a különböző anyagok és egymásra rakható
a.push (1);
b.push (99,3);
a.push (2);
b.push (-12,23);
cout <
for (i = 0; i<10; i++) с.push ( (char) 'A'+i);
for (i = 0; i<10; i+ + ) cout <
vissza 0;
>
kazal
kazal
kazal
Nézzük figyelni, hogy a kívánt adattípust ki zárójelben. NJ mérhető adatok meghatározott típusú létrehozására osztály tárgyak verem míg a változó a tárolt adatok típusa a veremben. Például létrehozhat egy másik köteget, tárolása mutatókat karaktereket:
kazal
struct addr char neve [40];
char utcai [40];
char városi [30];
char állapotban [3];
char zip [12];
>
Akkor tudod használni a verem osztályt létrehozni egy köteg, amelyben objektumok tárolják addr típusa: