Co je to třída?
Třída C ++ kombinuje data a metody pro manipulaci s daty do jednoho. Třídy také určují formy objektů. Data a metody obsažené ve třídě jsou známé jako členové třídy. Třída je uživatelem definovaný datový typ. Pro přístup k členům třídy používáme instanci třídy. Třídu můžete vidět jako podrobný plán pro objekt.
Třída je prototypem domu. Zobrazuje umístění a velikosti dveří, oken, podlah atd. Z těchto popisů můžeme postavit dům. Dům se stává objektem. Z prototypu je možné vytvořit mnoho domů. Je také možné z třídy vytvořit mnoho objektů.
Na výše uvedeném obrázku máme prototyp jednoho domu. Z tohoto prototypu jsme vytvořili dva domy s různými funkcemi.
V tomto výukovém programu se naučíte:
- Co je to třída?
- Příklad třídy
- Soukromá a veřejná klíčová slova
- Definice objektu
- Přístup k datovým členům
- Funkce členů třídy
- Konstruktéři a ničitelé
Prohlášení o třídě
V C + je třída definována pomocí klíčového slova třídy. Za tím by měl následovat název třídy. Tělo třídy se poté přidá mezi složené závorky {}.
Syntax:
class class-name{// data// functions};
- Název třídy je název, který se přiřadí ke třídě.
- Data jsou data pro třídu, obvykle deklarovaná jako proměnné.
- Tyto funkce jsou třídními funkcemi.
Soukromá a veřejná klíčová slova
Určitě jste se s těmito dvěma klíčovými slovy setkali. Jsou to modifikátory přístupu.
- Soukromé:
Když se klíčové slovo private použije k definování funkce nebo třídy, stane se soukromým. Jsou přístupné pouze zevnitř třídy.
- Veřejnost:
Veřejné klíčové slovo na druhé straně zpřístupňuje data / funkce veřejně. Jsou přístupné zvenčí třídy.
Definice objektu
Objekty jsou vytvářeny z tříd. Objekty třídy jsou deklarovány podobným způsobem, jako jsou deklarovány proměnné. Název třídy musí začínat, následovaný názvem objektu. Objekt typu třídy.
Syntax:
class-name object-name;
- Název třídy je název třídy, ze které má být objekt vytvořen.
- Název objektu je název, který se má přiřadit novému objektu.
Tento proces vytváření objektu z třídy je známý jako vytváření instancí.
Přístup k datovým členům
Pro přístup k veřejným členům třídy používáme operátor (.) Tečka. Jedná se o členy označené modifikátorem veřejného přístupu.
Pří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ýstup:
Zde je snímek obrazovky s kódem:
Vysvětlení kódu:
- Chcete-li používat jeho funkce, zahrňte do našeho kódu soubor záhlaví iostream.
- Zahrnutí std namespace do našeho kódu pro použití jeho tříd bez jeho volání.
- Deklarujte třídu s názvem Telefon.
- Pomocí modifikátoru veřejného přístupu k označení proměnných, které se chystáme vytvořit, jako veřejně přístupných.
- Deklarujte variabilní náklady na dvojitý datový typ.
- Deklarujte celočíselnou proměnnou s názvem sloty.
- Konec těla třídy.
- Volání funkce main (). Logika programu by měla být přidána do jeho těla.
- Vytvořte objekt s názvem Y6 typu Telefon. Tomu se říká instance.
- Vytvořte objekt s názvem Y7 typu Telefon. Tomu se říká instance.
- Přístup k proměnným / členským nákladům třídy Telefon pomocí objektu Y6. Hodnota je nastavena na 100,0. Cena Y6 je nyní nastavena na 100,0.
- Přistupujte k proměnným / členským slotům třídy Telefon pomocí objektu Y6. Hodnota je nastavena na 2. Sloty pro Y6 jsou nyní nastaveny na 2.
- Přístup k proměnným / členským nákladům třídy Telefon pomocí objektu Y7. Hodnota je nastavena na 200,0. Cena Y7 je nyní nastavena na 200,0.
- Přístup do proměnných / členských slotů třídy Telefon pomocí objektu Y7. Hodnota je nastavena na 2. Sloty pro Y7 jsou nyní nastaveny na 2.
- Vytiskněte náklady na Y6 na konzoli spolu s dalším textem.
- Tiskněte náklady na Y7 na konzolu spolu s dalším textem.
- Vytiskněte počet slotů pro Y6 spolu s dalším textem.
- Vytiskněte počet slotů pro Y7 spolu s dalším textem.
- Po úspěšném dokončení musí program vrátit hodnotu.
- Konec těla funkce main ().
Co je soukromá třída?
Ke členům třídy označeným jako soukromé lze přistupovat pouze pomocí funkcí definovaných v rámci třídy. Žádný objekt nebo funkce definovaná mimo třídu nemá přímý přístup k těmto členům. Člen soukromé třídy má přístup pouze k funkcím člena a přítele.
Co je chráněná třída?
Členové třídy označení jako chránění mají oproti těm označeným jako soukromé výhodu. Lze k nim přistupovat pomocí funkcí v rámci třídy jejich definice. Navíc k nim lze přistupovat z odvozených tříd.
Pří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ýstup:
Zde je snímek obrazovky s kódem:
Vysvětlení kódu:
- Chcete-li používat jeho funkce, zahrňte do našeho kódu soubor záhlaví iostream.
- Zahrňte do našeho kódu std namespace, abyste mohli používat jeho třídy, aniž byste jej volali.
- Vytvořte třídu s názvem ClassA.
- Pomocí modifikátoru veřejného přístupu označte člena třídy, který má být vytvořen, jako veřejně přístupný.
- Vytvořte funkci s názvem set_a (), která přebírá jednu celočíselnou hodnotu val.
- Vytvořte funkci s názvem get_a ().
- Pomocí modifikátoru soukromého přístupu označte člena třídy, který má být vytvořen, jako soukromě přístupný.
- Deklarujte celočíselnou proměnnou s názvem a.
- Konec těla třídy.
- Pro přístup k funkci get_a () použijte název třídy a operátor rozlišení oboru. Chceme definovat, co funkce vyvolá.
- Funkce get_a () by měla při vyvolání vrátit hodnotu proměnné a.
- Konec definice funkce get_a ().
- Pomocí názvu třídy a operátoru rozlišení oboru získáte přístup k funkci set_a (). Chceme definovat, co funkce dělá, když je vyvolána.
- Přiřazení hodnoty proměnné val proměnné a.
- Konec definice funkce set_a ().
- Zavolejte funkci main (). Logika programu by měla být přidána do těla této funkce.
- Vytvořte instanci ClassA a pojmenujte ji.
- Pomocí výše uvedené instance třídy a funkce set_a () přiřaďte proměnné a hodnotu 20.
- Tisk nějakého textu vedle hodnoty proměnné a na konzole. Hodnota proměnné a se získá voláním funkce get_a ().
- Po úspěšném dokončení musí program vrátit hodnotu.
- Konec těla funkce main ().
Pří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ýstup:
Zde je snímek obrazovky s kódem:
Vysvětlení kódu:
- Chcete-li používat jeho funkce, zahrňte do našeho kódu soubor záhlaví iostream.
- Zahrňte do našeho kódu std namespace, abyste mohli používat jeho třídy, aniž byste jej volali.
- Vytvořte třídu s názvem ParentClass.
- Použijte modifikátor chráněného přístupu k označení člena třídy, který má být vytvořen jako chráněný.
- Vytvořte celočíselnou proměnnou s názvem hodnota.
- Konec těla třídy.
- Vytvořte novou třídu s názvem ChildClass, která zdědí ParentClass.
- Pomocí modifikátoru chráněného přístupu označte člena třídy, který má být vytvořen, jako přístupný pro podřízené třídy.
- Vytvořte funkci s názvem setId (), která přebírá jednu celočíselnou hodnotu x.
- Přiřazení hodnoty proměnné x hodnotě proměnné.
- Konec definice funkce setId ().
- Vytvořte funkci s názvem displayValue ().
- Vytiskněte hodnotu proměnné s názvem hodnota na konzole spolu s dalším textem.
- Konec těla funkce displayValue ().
- Konec těla třídy s názvem ChildClass.
- Zavolejte funkci main (). Logika programu by měla být přidána do těla této funkce.
- Vytvořte instanci ChildClass a pojmenujte ji c.
- Pomocí výše uvedené instance třídy a funkce setId () přiřaďte proměnné x hodnotu 21.
- Pomocí instance výše uvedené třídy volejte funkci s názvem displayValue ().
- Po úspěšném dokončení musí program vrátit hodnotu.
- Konec těla funkce main ().
Funkce členů třídy
Funkce nám pomáhají manipulovat s daty. Členské funkce třídy lze definovat dvěma způsoby:
- Uvnitř definice třídy
- Mimo definici třídy
Pokud má být funkce definována mimo definici třídy, musíme použít operátor rozlišení oboru (: :). To by mělo být doprovázeno názvy tříd a funkcí.
Pří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ýstup:
Zde je snímek obrazovky s kódem:
Vysvětlení kódu:
- Chcete-li používat jeho funkce, zahrňte do našeho programu soubor záhlaví iostream.
- Zahrňte soubor záhlaví řetězce do našeho programu, abyste mohli používat jeho funkce.
- Zahrňte do našeho kódu std namespace, abyste mohli používat jeho třídy, aniž byste jej volali.
- Vytvořte třídu s názvem Guru99.
- Pomocí modifikátoru veřejného přístupu označte členy třídy, které se chystáme vytvořit, jako veřejně přístupné.
- Vytvořte proměnnou řetězce s názvem tutorial_name.
- Vytvořte celočíselnou proměnnou s názvem id.
- Vytvořte funkci s názvem printname (). Tato funkce není definována v definici třídy.
- Vytvořte funkci s názvem printed (). Tato funkce je definována v definici třídy. Jeho tělo bylo přidáno do definice třídy.
- Vytiskněte hodnotu proměnné id spolu s dalším textem na konzole. Všimněte si, že to bylo přidáno do těla funkce printid (). Provede se pouze při volání funkce printid ().
- Konec těla funkce printid ().
- Konec těla třídy Guru99.
- Začátek definice funkce printname ().
- Vytiskněte hodnotu proměnné tutorial_name na konzole spolu s dalším textem. Všimněte si, že to bylo přidáno do těla funkce printname (). Provede se pouze při volání funkce printname ().
- Konec definice funkce printname ().
- Zavolejte funkci main (). Logika programu by měla být přidána do těla této funkce.
- Vytvořte instanci třídy Guru99 a pojmenujte ji guru99.
- Pomocí výše uvedené instance můžete proměnné tutorial_name přiřadit hodnotu C ++.
- Pomocí instance guru99 přiřaďte proměnné id hodnotu 1001.
- Použijte instanci guru99 k volání funkce printname ().
- Voláním příkazu end (end line) vytisknete na konzole nový prázdný řádek.
- Použijte instanci guru99 k volání funkce printid ().
- Po úspěšném dokončení musí program vrátit hodnotu.
- Konec těla funkce main ().
Konstruktéři a ničitelé
Co jsou konstruktéři?
Konstrukty jsou speciální funkce, které inicializují objekty. Překladače C ++ při vytváření objektu volá konstruktor. Konstruktory pomáhají přiřadit hodnoty členům třídy. Samozřejmě to je poté, co jim byl přidělen nějaký paměťový prostor.
Co jsou destruktory?
Destruktory na druhé straně pomáhají ničit předměty třídy.
Název konstruktoru musí být podobný názvu třídy. Konstruktory nemají návratový typ.
Konstruktor lze definovat uvnitř nebo vně těla třídy. Pokud je definován mimo tělo třídy, měl by být definován názvem třídy a operátorem rozlišení oboru (: :).
Příklad 3:
#includeusing namespace std;class ClassA {public:ClassA() {cout << "Class constructor called"< Výstup:
Zde je snímek obrazovky s kódem:
Vysvětlení kódu:
- Chcete-li používat jeho funkce, zahrňte do kódu soubor záhlaví iostream.
- Zahrňte do našeho kódu std namespace, abyste mohli používat jeho třídy, aniž byste jej volali.
- Vytvořte třídu s názvem ClassA.
- Pomocí modifikátoru veřejného přístupu označte člena, kterého se chystáme vytvořit, jako veřejně přístupného.
- Vytvořte konstruktor pro třídu.
- Text, který se má vytisknout na konzole, když se volá konstruktor. Endl je klíčové slovo C ++, což znamená koncový řádek. Přesune kurzor myši na další řádek.
- Konec těla konstruktoru třídy.
- Vytvořte destruktor pro třídu.
- Text, který se má vytisknout na konzoli, když se volá destruktor. Endl je klíčové slovo C ++, což znamená koncový řádek. Přesune kurzor myši na další řádek.
- Konec těla destruktoru.
- Konec těla třídy.
- Zavolejte funkci main (). Logika programu by měla být přidána do těla této funkce.
- Vytvořte objekt třídy a pojmenujte jej a. Bude volán konstruktor.
- Vytvořte celočíselnou proměnnou s názvem p a přiřaďte jí hodnotu 1.
- Vytvořte blok příkazů if pomocí proměnné p.
- Vytvořte objekt třídy a pojmenujte jej b. Bude se volat destruktor.
- Konec těla příkazu if.
- Konec těla funkce main ().
Souhrn:
- C ++ je objektově orientovaný.
- Třídy tvoří hlavní rysy C ++, díky nimž je objektově orientovaný.
- Třída C ++ kombinuje data a metody pro manipulaci s daty do jednoho.
- Třída je plán pro objekt.
- Třídy určují formu objektu.
- Data a metody obsažené ve třídě jsou známé jako členové třídy.
- Pro přístup ke členům třídy byste měli použít instanci třídy.
- K vytvoření třídy používáme klíčové slovo třídy.
- Členské funkce třídy lze definovat uvnitř nebo vně třídy.