//pomocou deklarácie typedef typedef class {
public:
...................................
...................................
...................................
private:
...................................
..................................
}nazov_triedy;
//priamo
class nazov_triedy {
public:
...................................
...................................
...................................
private:
...................................
..................................
};
Príklad na deklaráciu, ktorá obsahuje premenné a metódy:
class pocitac {
public:
char procesor[20], ma_doska[20], graf_karta[20];
int RAM, CPU_freq;
void test(int vstup);
int vypocet(void);
};
Ak by sme chceli pracovať s dátami, ktoré obsahuje trieda pocitac, tak je to pokojne možné v rámci celého programu, pretože je definovaná ako public. Ukážeme si však použitie konštruktoru a deštruktoru v triedach a deklaráciu statických a dynamických premenných typu trieda, čo je dôležitým aspektom pre pochopenie ďalšej práce s OOP.
Statické
Statická deklarácia reprezentuje zápis napr. pocitac pc; tento spôsob deklarácie hovorí, že pamäť pre vytvorený premennú/objekt bude dostupná okamžite po deklarácii a bude uvoľnená až po skončení programu. Pri použití statickej deklarácie sa pristupuje k prvkom triedy nasledovne:
pocitac.RAM = 1024; //prístup pomocou operátora .
Dynamické
Je deklarovanie pomocou dynamicky alokovanej pamäte. Deklarácia pocitac *pc; vytvorí pointer-ukazovateľ, ktorý nebude obsahovať priamo dáta premennej, alebo prvku triedy, ale iba adresu v pamäti. Miesto pre premennú je nutné manuálne alokovať pomocou konštruktoru - operátoru new (alebo vlastne naprogramovaným konštruktorom). Dynamicky alokované premenné je tiež nutné aj manuálne zrušiť po skončení práce s ňou pomocou deštruktoru - operátoru delete. Pri dynamickej deklarácii sa pristupuje k prvkom triedy nasledovne:
pocitac->RAM = 1024; //prístup pomocou pointerov
Konštruktor
Konštruktor a deštruktor majú tiež svoje špecifiká, dajú sa prispôsobiť tomu čo potrebujeme. Konštruktor je v programovacom jazyku C++ špeciálna metóda, ktorá alokuje miesto v pamäti pre dynamické premenné. Nevracia žiadny parameter. Ide hlavne o konštruktor, ktorý sa delí na implicitný a explicitný.
Implicitný konštruktor tiež nazývaný default konštruktor je generovaný automaticky C++ Builderom, keď použijeme konštruktor new. Jeho úlohou je automaticky alokovať premennú bez zásahu do jej parametrov alebo súčastí bez nutnosti programovania.
Explicitný konštruktor je iný v tom, že máme voľné ruky, pretože jeho hlavnou úlohou je možnosť alokovať premennú a zároveň do nej zapísať hodnotu/hodnoty. Používa sa práve pri spomínaných prípadoch, keď potrebujeme vopred určiť parametre premenných. Hlavná úloha explicitného konštruktora je teda volať konštruktor s parametrami. Ukážeme si príklad:
//deklaráciu našej triedy pocitac nahradí nová
class pocitac
{
public:
char procesor[20],
ma_doska[20],
graf_karta[20];
int RAM, CPU_freq;
pocitac(
char pprocesor[20],
char mma_doska[20],
char ggraf_karta[20]);
void test(int vstup);
int vypocet(void);
};
//programovanie konštruktoru – jeho tela,
//tým že konštruktor naprogramujeme vlastnoručne
//nemusíme napr. alokovať všetky časti triedy, to je
//jednou z výhod explicitného konštruktoru
pocitac::pocitac(char pprocesor[20],char mma_doska[20],
char ggraf_karta[20]){
strcpy(procesor,pprocesor);
strcpy(ma_doska,mma_doska);
strcpy(graf_karta,ggraf_karta);
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
pocitac *moj;
moj = new pocitac("Athlon","Asus","Nvidia");
//volanie konštruktora s parametrami
ShowMessage(moj->procesor);
}
Nabudúce budeme pokračovať v kapitole triedy a preskúmame dedičnosť.