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 osztály class_name.
>

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 osztályú verem stype Stck [SIZE];
int tos;
nyilvános:
verem ();

verem ();
void push (stype i);
Stype pop ();
>;
// konstruktor függvény verem
sablon kazal:: stack ()
tos = 0;
cout <<"Stack Initialized\n";
>
/ * Feature-destructor stack
Ez a funkció nem szükséges. Benne van csak illusztrációk. * /
sablon kazal::

verem ()
cout <<"Stack Destroyed\n";
>
// tér tárgyat a verem
sablon void verem:: push (stype i)
if (tos == SIZE) cout <<"Stack is full. \n";
return;
>
Stck [tos] = i;
tos ++;
>
// letölteni az objektumot a verem
sablon stype verem:: pop ()
ha (Tos == 0) cout <<"Stack underflow.\n";
vissza 0;
>
tos -;
vissza Stck [tos];
>
int main ()
kazal a; // létre egész köteg
kazal b; // Létrehozunk egy igazi halom
kazal e; // Létrehozunk egy szimbolikus köteg
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 < cout < cout < cout < // bemutató a karakter a verem
for (i = 0; i<10; i++) с.push ( (char) 'A'+i);
for (i = 0; i<10; i+ + ) cout < cout <<"\n";
vissza 0;
>

kazal és; // létre egész köteg
kazal b; // Létrehozunk egy igazi halom
kazal e; // Létrehozunk egy szimbolikus köteg

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 chrptrstck;

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:

Kapcsolódó cikkek