Crearea de șabloane de clasă

Creați șabloane de clasă.

La fel cum funcțiile abstracte sunt create pe baza șabloanelor de funcții, clasele abstracte sunt create pe baza șabloanelor de clasă. Un șablon de clasă descrie o clasă care, la rândul său, descrie un obiect. Când creați un șablon de clasă, compilatorul citește acest șablon și definește clasa. Apoi creați instanțe de obiecte din această clasă. După cum puteți vedea, șabloanele de clasă definesc un alt nivel de abstractizare în conceptul de clase.







Listarea 4. Definirea unui șablon de clasă

Format

Când creați o instanță a unui obiect dintr-un șablon, trebuie să specificați tipurile de date care vor înlocui parametrii șablonului. De exemplu, pentru a crea un obiect MyClass într-un program, puteți utiliza următoarea instrucțiune:

CMyClass MyClass (15);

Această linie creează un obiect al clasei CMyClass. care utilizează un număr întreg în loc de un tip de date abstract. Dacă aveți nevoie de o clasă pentru a lucra cu numere reale, puteți crea un obiect din această clasă după cum urmează:

CMyClass myClass (15,75);

Să luăm în considerare un exemplu mai complex. Să presupunem că doriți să creați o clasă care să dețină două valori și să conțină o funcție de membru pentru a compara aceste valori. Lista 5 arată programele care implementează o clasă similară. Mai întâi, programul definește un șablon de clasă, numit CCompare. În această clasă, sunt stocate două valori, care sunt furnizate constructorului atunci când acesta este apelat. Clasa include, de asemenea, un constructor normal și distrugător, precum și funcțiile membre pentru a defini o valoare mai mică sau mai mare sau pentru a verifica egalitatea.







Lista 5. - folosind un șablon de clasă

# includ

șablon

CCompare (Tip arg1, Tip arg2)

CCompare compara 1 (15, 25);

CCompare compara2 (254,78, 12,983);

CCompare comparați3 ("A", "Z");

cout <<"THE COMPARE1 OBJECT" <

cout <<"Lowest: " <

cout <<"Highest: " <

cout <<"Equal: " <

cout <<"THE COMPARE2 OBJECT" <

cout <<"Lowest: " <

cout <<"Highest: " <

cout <<"Equal: " <

cout <<"THE COMPARE2 OBJECT" <

cout <<"Lowest: " <

cout <<"Highest: " <

cout <<"Equal: " <

Programul principal creează trei obiecte diferite bazate pe șablonul de clasă, dintre care unul funcționează cu numere întregi, altul utilizează numere reale, iar cel de-al treilea stochează și compară variabilele tipului de caractere. Prin crearea celor trei obiecte ale clasei CCompare. funcția principal () apelează funcțiile membre ale acestor obiecte pentru a afișa informații despre datele stocate în fiecare dintre cele trei obiecte.

În șablonul de clasă, ca în șablonul de funcții, puteți specifica cât mai mulți parametri doriți. Lista 6 prezintă textul unui șablon de clasă care utilizează două tipuri diferite de date.

Format

CMyClass (Tip1 arg1, Type2 arg2)

Pentru a crea o instanță a unui obiect MyClass, puteți utiliza, de exemplu, următoarea linie:

CMyClass MyClass (15, 'A');

În cele din urmă, trebuie remarcat faptul că, ca parametri ai șablonului de clasă, puteți utiliza anumite tipuri de date împreună cu tipurile de substituenți. Doar introduceți lista parametrilor un anumit tip de date împreună cu alți parametri. Lista 7 prezintă textul unui program mic în care o instanță obiect este creată pe baza unui șablon de clasă care utilizează două tipuri de date abstracte și un tip specific.

Listare 7. Utilizarea unor tipuri de date specifice ca parametri într-un șablon de clasă

#include

Format







Articole similare

Trimiteți-le prietenilor: