Čo je to Trieda?
Trieda C ++ kombinuje údaje a metódy manipulácie s údajmi do jedného. Triedy tiež určujú formy predmetov. Údaje a metódy obsiahnuté v triede sú známe ako členovia triedy. Trieda je používateľom definovaný dátový typ. Na prístup k členom triedy používame inštanciu triedy. Triedu môžete vidieť ako podrobný plán pre objekt.
Trieda je prototypom domu. Zobrazuje umiestnenie a veľkosti dverí, okien, podláh atď. Z týchto popisov môžeme postaviť dom. Dom sa stáva objektom. Z prototypu je možné vytvoriť veľa domov. Je tiež možné vytvoriť veľa objektov z triedy.
Na vyššie uvedenom obrázku máme prototyp jedného domu. Z tohto prototypu sme vytvorili dva domy s rôznymi vlastnosťami.
V tomto návode sa dozviete:
- Čo je to Trieda?
- Príklad triedy
- Súkromné a verejné kľúčové slová
- Definícia objektu
- Prístup k dátovým členom
- Funkcie členov triedy
- Konštruktéri a ničitelia
Vyhlásenie triedy
V C + je trieda definovaná pomocou kľúčového slova triedy. Potom by mal nasledovať názov triedy. Telo triedy sa potom pridá medzi zložené zátvorky {}.
Syntax:
class class-name{// data// functions};
- Názov triedy je názov, ktorý sa má triede priradiť.
- Dáta sú údajmi pre triedu, ktoré sa zvyčajne deklarujú ako premenné.
- Funkcie sú funkciami triedy.
Súkromné a verejné kľúčové slová
Určite ste sa s týmito dvoma kľúčovými slovami stretli. Sú to modifikátory prístupu.
- Súkromné:
Keď sa na definovanie funkcie alebo triedy použije kľúčové slovo private, stane sa súkromným. Takéto sú prístupné iba z triedy.
- Verejné:
Verejné kľúčové slovo na druhej strane zverejňuje údaje / funkcie. Sú prístupné mimo triedy.
Definícia objektu
Objekty sa vytvárajú z tried. Objekty triedy sú deklarované podobným spôsobom ako deklarované premenné. Musí sa začínať názov triedy, za ktorým musí nasledovať názov objektu. Objekt typu triedy.
Syntax:
class-name object-name;
- Názov triedy je názov triedy, z ktorej sa má objekt vytvoriť.
- Názov-objektu je názov, ktorý sa má priradiť k novému objektu.
Tento proces vytvárania objektu z triedy sa nazýva inštancia.
Prístup k dátovým členom
Na prístup k verejným členom triedy používame operátor (.) Dot. Jedná sa o členov označených modifikátorom verejného prístupu.
Príklad 1:
#includeusing namespace std;class Phone {public:double cost;int slots;};int main() {Phone Y6;Phone Y7;Y6.cost = 100.0;Y6.slots = 2;Y7.cost = 200.0;Y7.slots = 2;cout << "Cost of Huawei Y6 : " << Y6.cost << endl;cout << "Cost of Huawei Y7 : " << Y7.cost << endl;cout << "Number of card slots for Huawei Y6 : " << Y6.slots << endl;cout << "Number of card slots for Huawei Y7 : " << Y7.slots << endl;return 0;}
Výkon:
Tu je snímka obrazovky s kódom:
Vysvetlenie kódu:
- Zahrňte hlavičkový súbor iostream do nášho kódu, aby ste mohli využívať jeho funkcie.
- Vrátane štandardného priestoru mien do nášho kódu, aby bolo možné používať jeho triedy bez jeho volania.
- Vyhláste triedu s názvom Telefón.
- Použitie modifikátora verejného prístupu na označenie premenných, ktoré sa chystáme vytvoriť, ako verejne prístupných.
- Deklarujte variabilné náklady na dvojitý dátový typ.
- Deklarujte celočíselnú premennú s názvom sloty.
- Koniec triedy.
- Volanie funkcie main (). Logika programu by mala byť pridaná do jeho tela.
- Vytvorte objekt s názvom Y6 typu Telefón. Toto sa nazýva inštancia.
- Vytvorte objekt s názvom Y7 typu Telefón. Toto sa nazýva inštancia.
- Pristúpte na variabilné / členské náklady triedy Telefón pomocou objektu Y6. Hodnota je nastavená na 100,0. Cena Y6 je teraz nastavená na 100,0.
- Pristúpte na variabilné / členské sloty triedy Phone pomocou objektu Y6. Hodnota je nastavená na 2. Sloty pre Y6 sú teraz nastavené na 2.
- Pristupujte k variabilnej / cene člena triedy Telefón pomocou objektu Y7. Hodnota je nastavená na 200,0. Cena Y7 je teraz nastavená na 200,0.
- Pristúpte na variabilné / členské sloty triedy Phone pomocou objektu Y7. Hodnota je nastavená na 2. Sloty pre Y7 sú teraz nastavené na 2.
- Vytlačte náklady na Y6 na konzolu spolu s ďalším textom.
- Vytlačte náklady na Y7 na konzolu spolu s ďalším textom.
- Vytlačte počet slotov pre Y6 spolu s iným textom.
- Vytlačte počet slotov pre Y7 spolu s iným textom.
- Po úspešnom dokončení musí program vrátiť hodnotu.
- Koniec tela hlavnej () funkcie.
Čo je to súkromná trieda?
K členom triedy označeným ako súkromní majú prístup iba funkcie definované v rámci triedy. Akýkoľvek objekt alebo funkcia definovaná mimo triedy nemôže mať priamy prístup k týmto členom. K členovi súkromnej triedy majú prístup iba členovia a priatelia.
Čo je chránená trieda?
Členovia triedy označení ako chránení majú výhodu oproti členom označeným ako súkromní. Je k nim prístup pomocou funkcií v rámci triedy ich definície. Okrem toho k nim možno získať prístup z odvodených tried.
Príklad 2:
#includeusing namespace std;class ClassA {public:void set_a(int val);int get_a(void);private:int a;};int ClassA::get_a(void) {return a;}void ClassA::set_a(int val) {a = val;}int main() {ClassA a;a.set_a(20);cout << "Value of a is: " << a.get_a();return 0;}
Výkon:
Tu je snímka obrazovky s kódom:
Vysvetlenie kódu:
- Zahrňte súbor hlavičky iostream do nášho kódu, aby ste mohli využívať jeho funkcie.
- Ak chcete používať svoje triedy bez toho, aby ste ich volali, zahrňte do nášho kódu std namespace.
- Vytvorte triedu s názvom ClassA.
- Pomocou modifikátora verejného prístupu označte člena triedy, ktorý sa má vytvoriť, ako verejne prístupného.
- Vytvorte funkciu s názvom set_a (), ktorá bude mať jednu celočíselnú hodnotu val.
- Vytvorte funkciu s názvom get_a ().
- Pomocou modifikátora súkromného prístupu označte člena triedy, ktorý sa má vytvoriť, ako súkromne prístupného.
- Deklarujte celočíselnú premennú s názvom a.
- Koniec triedy.
- Na prístup k funkcii get_a () použite názov triedy a operátor rozlíšenia rozsahu. Chceme definovať, čo funkcia robí, keď je vyvolaná.
- Funkcia get_a () by mala po vyvolaní vrátiť hodnotu premennej a.
- Koniec definície funkcie get_a ().
- Na prístup k funkcii set_a () použite názov triedy a operátor rozlíšenia rozsahu. Chceme definovať, čo funkcia robí, keď je vyvolaná.
- Priradenie hodnoty premennej val k premennej a.
- Koniec definície funkcie set_a ().
- Zavolajte funkciu main (). Logika programu by mala byť pridaná do tela tejto funkcie.
- Vytvorte inštanciu ClassA a pomenujte ju.
- Pomocou vyššie uvedenej inštancie triedy a funkcie set_a () priraďte premennej a hodnotu 20.
- Tlač niektorého textu spolu s hodnotou premennej a na konzole. Hodnota premennej a sa získa volaním funkcie get_a ().
- Po úspešnom dokončení musí program vrátiť hodnotu.
- Koniec tela funkcie main ().
Príklad 3:
#includeusing namespace std;class ParentClass {protected:int value;};class ChildClass : public ParentClass {public:void setId(int x) {value = x;}void displayValue() {cout << "Value is: " << value << endl;}};int main() {ChildClass c;c.setId(21);c.displayValue();return 0;}
Výkon:
Tu je snímka obrazovky s kódom:
Vysvetlenie kódu:
- Zahrňte súbor hlavičky iostream do nášho kódu, aby ste mohli využívať jeho funkcie.
- Ak chcete používať svoje triedy bez toho, aby ste ich volali, zahrňte do nášho kódu std namespace.
- Vytvorte triedu s názvom ParentClass.
- Pomocou modifikátora chráneného prístupu označte člena triedy, ktorý sa má vytvoriť, ako chráneného.
- Vytvorte celočíselnú premennú s názvom hodnota.
- Koniec triedy.
- Vytvorte novú triedu s názvom ChildClass, ktorá zdedí triedu ParentClass.
- Pomocou modifikátora chráneného prístupu označte člena triedy, ktorý sa má vytvoriť, ako prístupného pre podradené triedy.
- Vytvorte funkciu s názvom setId (), ktorá bude mať jednu celočíselnú hodnotu x.
- Priradenie hodnoty premennej x k hodnote premennej.
- Koniec definície funkcie setId ().
- Vytvorte funkciu s názvom displayValue ().
- Vytlačte hodnotu premennej s názvom hodnota na konzolu spolu s ďalším textom.
- Koniec tela funkcie displayValue ().
- Koniec tela triedy s názvom ChildClass.
- Zavolajte funkciu main (). Logika programu by mala byť pridaná do tela tejto funkcie.
- Vytvorte inštanciu ChildClass a pomenujte ju c.
- Pomocou vyššie uvedenej inštancie triedy a funkcie setId () môžete premennej x priradiť hodnotu 21.
- Pomocou inštancie vyššie uvedenej triedy zavolajte funkciu s názvom displayValue ().
- Po úspešnom dokončení musí program vrátiť hodnotu.
- Koniec tela funkcie main ().
Funkcie členov triedy
Funkcie nám pomáhajú manipulovať s údajmi. Členské funkcie triedy možno definovať dvoma spôsobmi:
- Vo vnútri definície triedy
- Mimo definície triedy
Ak má byť funkcia definovaná mimo definíciu triedy, musíme použiť operátor rozlíšenia rozsahu (: :). K tomu by mali byť pripojené názvy tried a funkcií.
Príklad 2:
#include#include using namespace std;class Guru99{public:string tutorial_name;int id;void printname();void printid(){cout << "Tutorial id is: "<< id;}};void Guru99::printname(){cout << "Tutorial name is: " << tutorial_name;}int main() {Guru99 guru99;guru99.tutorial_name = "C++";guru99.id = 1001;guru99.printname();cout << endl;guru99.printid();return 0;}
Výkon:
Tu je snímka obrazovky s kódom:
Vysvetlenie kódu:
- Zahrňte súbor hlavičky iostream do nášho programu, aby ste mohli využívať jeho funkcie.
- Zahrňte súbor hlavičky reťazca do nášho programu, aby ste mohli využívať jeho funkcie.
- Ak chcete používať svoje triedy bez toho, aby ste ich volali, zahrňte do nášho kódu std namespace.
- Vytvorte triedu s názvom Guru99.
- Pomocou modifikátora verejného prístupu označte členov triedy, ktorú sa chystáme vytvoriť, ako verejne prístupných.
- Vytvorte reťazcovú premennú s názvom tutorial_name.
- Vytvorte celočíselnú premennú s názvom id.
- Vytvorte funkciu s názvom printname (). Táto funkcia nie je definovaná v definícii triedy.
- Vytvorte funkciu s názvom printed (). Táto funkcia je definovaná v definícii triedy. Jeho telo bolo pridané do definície triedy.
- Vytlačte hodnotu premennej id spolu s ďalším textom na konzole. Toto bolo pridané do tela funkcie printid (). Spustí sa iba pri vyvolaní funkcie printid ().
- Koniec tela funkcie printid ().
- Koniec tela triedy Guru99.
- Začiatok definície funkcie printname ().
- Vytlačte hodnotu premennej tutorial_name na konzolu spolu s ďalším textom. Toto bolo pridané do tela funkcie printname (). Spustí sa iba pri vyvolaní funkcie printname ().
- Koniec definície funkcie printname ().
- Zavolajte funkciu main (). Logika programu by mala byť pridaná do tela tejto funkcie.
- Vytvorte inštanciu triedy Guru99 a pomenujte ju guru99.
- Pomocou vyššie uvedenej inštancie môžete premennej tutorial_name priradiť hodnotu C ++.
- Pomocou inštancie guru99 môžete premennej id priradiť hodnotu 1001.
- Použite inštanciu guru99 na volanie funkcie printname ().
- Zavolaním príkazu koniec (koncový riadok) vytlačíte na konzole nový prázdny riadok.
- Použite inštanciu guru99 na volanie funkcie printid ().
- Po úspešnom dokončení musí program vrátiť hodnotu.
- Koniec tela hlavnej () funkcie.
Konštruktéri a ničitelia
Čo sú to konštruktéri?
Konštrukty sú špeciálne funkcie, ktoré inicializujú objekty. Kompilátory C ++ volajú pri vytváraní objektu konštruktor. Konštruktéri pomáhajú priraďovať hodnoty členom triedy. Samozrejme, je to potom, čo im bol pridelený určitý pamäťový priestor.
Čo sú to destruktory?
Destruktory na druhej strane pomáhajú ničiť predmety triedy.
Názov konštruktora musí byť podobný názvu triedy. Konštruktéri nemajú návratový typ.
Konštruktor je možné definovať vo vnútri alebo mimo tela triedy. Ak je definované mimo telo triedy, malo by to byť definované názvom triedy a operátorom rozlíšenia rozsahu (: :).
Príklad 3:
#includeusing namespace std;class ClassA {public:ClassA() {cout << "Class constructor called"< Výkon:
Tu je snímka obrazovky s kódom:
Vysvetlenie kódu:
- Zahrňte súbor iostream hlavičky do kódu, aby ste mohli využívať jeho funkcie.
- Ak chcete používať svoje triedy bez toho, aby ste ich volali, zahrňte do nášho kódu std namespace.
- Vytvorte triedu s názvom ClassA.
- Pomocou modifikátora verejného prístupu označte člena, ktorého sa chystáme vytvoriť, ako verejne prístupného.
- Vytvorte konštruktor pre triedu.
- Text, ktorý sa má vytlačiť na konzolu, keď sa volá konštruktor. Endl je kľúčové slovo C ++, čo znamená koncový riadok. Presunie kurzor myši na ďalší riadok.
- Koniec tela konštruktora triedy.
- Vytvorte deštruktor pre triedu.
- Text, ktorý sa má vytlačiť na konzolu, keď sa volá deštruktor. Endl je kľúčové slovo C ++, čo znamená koncový riadok. Presunie kurzor myši na ďalší riadok.
- Koniec tela deštruktora.
- Koniec triedy.
- Zavolajte funkciu main (). Logika programu by mala byť pridaná do tela tejto funkcie.
- Vytvorte objekt triedy a pomenujte ho a. Bude sa volať konštruktér.
- Vytvorte celočíselnú premennú s názvom p a priraďte jej hodnotu 1.
- Vytvorte blok príkazov if pomocou premennej p.
- Vytvorte objekt triedy a pomenujte ho b. Zavolá sa deštruktor.
- Koniec tela príkazu if.
- Koniec tela hlavnej () funkcie.
Zhrnutie:
- C ++ je objektovo orientovaný.
- Triedy tvoria hlavné vlastnosti jazyka C ++, ktoré ho robia objektovo orientovaným.
- Trieda C ++ kombinuje údaje a metódy manipulácie s údajmi do jedného.
- Trieda je plán objektu.
- Triedy určujú formu objektu.
- Údaje a metódy obsiahnuté v triede sú známe ako členovia triedy.
- Na prístup k členom triedy by ste mali použiť inštanciu triedy.
- Na vytvorenie triedy používame kľúčové slovo class.
- Členské funkcie triedy môžu byť definované vo vnútri alebo mimo triedy.