Kaj je razred?
Razred C ++ združuje podatke in metode za obdelavo podatkov v enega. Razredi določajo tudi oblike predmetov. Podatki in metode v razredu so znani kot člani razreda. Razred je uporabniško določen podatkovni tip. Za dostop do članov predavanja uporabimo primerek razreda. Razred lahko vidite kot načrt predmeta.
Razred naj bo prototip hiše. Prikazuje lokacijo in velikost vrat, oken, tal itd. Iz teh opisov lahko zgradimo hišo. Hiša postane objekt. Iz prototipa je mogoče ustvariti veliko hiš. Prav tako je mogoče ustvariti veliko predmetov iz razreda.
Na zgornji sliki imamo prototip ene hiše. Iz tega prototipa smo ustvarili dve hiši z različnimi lastnostmi.
V tej vadnici boste izvedeli:
- Kaj je razred?
- Primer razreda
- Zasebne in javne ključne besede
- Opredelitev predmeta
- Dostop do članov podatkov
- Funkcije člana predavanja
- Konstruktorji in destruktorji
Izjava o razredu
V C + je razred definiran s ključno besedo class. Temu naj sledi ime predavanja. Telo razreda se nato doda med zavite oklepaje {}.
Sintaksa:
class class-name{// data// functions};
- Ime razreda je ime, ki ga želite dodeliti predavanju.
- Podatki so podatki za razred, ki so običajno deklarirani kot spremenljivke.
- Funkcije so funkcije razreda.
Zasebne in javne ključne besede
Verjetno ste naleteli na ti dve ključni besedi. So modifikatorji dostopa.
- Zasebno:
Ko zasebno ključno besedo uporabimo za definiranje funkcije ali razreda, postane zasebna. Takšni so dostopni samo znotraj razreda.
- Javno:
Ključna beseda public pa pokaže podatke / funkcije javne. Do njih lahko dostopate zunaj predavanja.
Opredelitev predmeta
Predmeti so ustvarjeni iz razredov. Predmeti razreda se deklarirajo na podoben način kot deklarirajo spremenljivke. Začeti se mora ime razreda, ki mu sledi ime predmeta. Predmet vrste razreda.
Sintaksa:
class-name object-name;
- Ime razreda je ime razreda, iz katerega naj se ustvari objekt.
- Ime-objekta je ime, ki se dodeli novemu objektu.
Ta postopek ustvarjanja predmeta iz razreda je znan kot instanciranje.
Dostop do članov podatkov
Za dostop do javnih članov razreda uporabimo operator (.) Pik. To so člani, označeni z modifikatorjem javnega dostopa.
Primer 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;}
Izhod:
Tu je posnetek zaslona kode:
Razlaga kode:
- V našo kodo vključite glavo glave iostream, da boste lahko uporabljali njene funkcije.
- Vključitev imenskega prostora std v našo kodo za uporabo njegovih razredov, ne da bi ga poklicali.
- Navedite predavanje z imenom Telefon.
- Uporaba modifikatorja javnega dostopa za označevanje spremenljivk, ki jih bomo ustvarili, kot javno dostopne.
- Navedite spremenljive stroške dvojnega tipa podatkov.
- Navedite celoštevilčno spremenljivko z imenom slots.
- Konec predavanja.
- Klic glavne () funkcije. Programsko logiko je treba dodati v njeno telo.
- Ustvarite objekt z imenom Y6 tipa Telefon. To se imenuje instanciranje.
- Ustvarite objekt z imenom Y7 tipa Telefon. To se imenuje instanciranje.
- Dostopajte do spremenljivke / stroškov člana razreda Telefon s pomočjo predmeta Y6. Vrednost je nastavljena na 100,0. Stroški Y6 so zdaj nastavljeni na 100,0.
- Dostopite do reže spremenljivke / člana razreda Telefon s pomočjo predmeta Y6. Vrednost je nastavljena na 2. Reže za Y6 so zdaj nastavljene na 2.
- Dostopajte do spremenljivke / stroškov člana razreda Telefon s pomočjo predmeta Y7. Vrednost je nastavljena na 200,0. Stroški Y7 so zdaj nastavljeni na 200,0.
- Dostopite do reže spremenljivke / člana razreda Telefon s pomočjo predmeta Y7. Vrednost je nastavljena na 2. Reže za Y7 so zdaj nastavljene na 2.
- Na konzolo skupaj z drugim besedilom natisnite stroške Y6.
- Na konzolo skupaj z drugim besedilom natisnite stroške Y7.
- Natisnite število rež za Y6 skupaj z drugim besedilom.
- Natisnite število rež za Y7 skupaj z drugim besedilom.
- Program mora po uspešnem zaključku vrniti vrednost.
- Konec telesa glavne () funkcije.
Kaj je zasebni razred?
Do članov razreda, označenih kot zasebni, lahko dostopajo samo funkcije, opredeljene v razredu. Noben objekt ali funkcija, definirana zunaj razreda, ne more neposredno dostopati do teh članov. Do člana zasebnega razreda dostopajo samo funkcije člana in prijatelja.
Kaj je zaščiten razred?
Člani predavanja, ki so označeni kot zaščiteni, imajo prednost pred tistimi, ki so označeni kot zasebni. Do njih lahko dostopajo funkcije znotraj razreda njihove definicije. Poleg tega so do njih dostopni iz izpeljanih razredov.
2. primer:
#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;}
Izhod:
Tu je posnetek zaslona kode:
Razlaga kode:
- V našo kodo vključite datoteko glave iostream, da boste lahko uporabljali njene funkcije.
- V našo kodo vključite imenski prostor std, da lahko uporabljate njegove razrede, ne da bi ga poklicali.
- Ustvarite razred z imenom ClassA.
- Z modifikatorjem javnega dostopa označite člana predavanja, ki naj bo ustvarjen kot javno dostopen.
- Ustvarite funkcijo z imenom set_a (), ki zavzame eno celoštevilčno vrednost val.
- Ustvarite funkcijo z imenom get_a ().
- Z modifikatorjem zasebnega dostopa označite člana predavanja, ki naj bo ustvarjen kot zasebno dostopen.
- Navedite celoštevilčno spremenljivko z imenom a.
- Konec predavanja.
- Za dostop do funkcije get_a () uporabite ime razreda in operater ločljivosti obsega. Določiti želimo, kaj funkcija naredi, ko je poklicana.
- Funkcija get_a () mora vrniti vrednost spremenljivke a, ko jo pokličete.
- Konec definicije funkcije get_a ().
- Za dostop do funkcije set_a () uporabite ime razreda in operater ločljivosti obsega. Določiti želimo, kaj funkcija naredi, ko je poklicana.
- Dodelitev vrednosti spremenljivke val spremenljivki a.
- Konec definicije funkcije set_a ().
- Pokličite glavno funkcijo. V telo te funkcije je treba dodati programsko logiko.
- Ustvarite primerek ClassA in mu dajte ime a.
- Z zgornjim primerkom razreda in funkcijo set_a () spremenljivki a dodelite vrednost 20.
- Tiskanje besedila poleg vrednosti spremenljivke a na konzolo. Vrednost spremenljivke a dobimo s klicem funkcije get_a ().
- Program mora po uspešnem zaključku vrniti vrednost.
- Konec telesa funkcije main ().
3. primer:
#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;}
Izhod:
Tu je posnetek zaslona kode:
Razlaga kode:
- V našo kodo vključite datoteko glave iostream, da boste lahko uporabljali njene funkcije.
- V našo kodo vključite imenski prostor std, da lahko uporabljate njegove razrede, ne da bi ga poklicali.
- Ustvarite razred z imenom ParentClass.
- Z modifikatorjem zaščitenega dostopa označite člana razreda, ki ga želite ustvariti kot zaščitenega.
- Ustvarite celoštevilčno spremenljivko z imenom.
- Konec predavanja.
- Ustvarite nov razred z imenom ChildClass, ki podeduje ParentClass.
- Z modifikatorjem zaščitenega dostopa označite člana razreda, ki naj bo ustvarjen kot dostopen za podrejene razrede.
- Ustvarite funkcijo z imenom setId (), ki ima eno celoštevilčno vrednost x.
- Dodelitev vrednosti spremenljivke x spremenljivki.
- Konec definicije funkcije setId ().
- Ustvarite funkcijo z imenom displayValue ().
- Na konzolo poleg drugega besedila natisnite vrednost spremenljivke z imenom value.
- Konec telesa funkcije displayValue ().
- Konec telesa razreda z imenom ChildClass.
- Pokličite glavno funkcijo. V telo te funkcije je treba dodati programsko logiko.
- Ustvari primerek ChildClass in mu daj ime c.
- Z zgornjim primerkom razreda in funkcijo setId () spremenljivki x dodelite vrednost 21.
- Z zgornjim primerkom razreda pokličite funkcijo z imenom displayValue ().
- Program mora po uspešnem zaključku vrniti vrednost.
- Konec telesa funkcije main ().
Funkcije člana predavanja
Funkcije nam pomagajo pri obdelavi podatkov. Funkcije članov razreda lahko definiramo na dva načina:
- Znotraj definicije razreda
- Zunaj definicije razreda
Če želimo funkcijo definirati zunaj definicije razreda, moramo uporabiti operater ločljivosti obsega (: :). Temu morajo biti priložena imena razredov in funkcij.
2. primer:
#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;}
Izhod:
Tu je posnetek zaslona kode:
Razlaga kode:
- V naš program vključite glavo datoteke iostream za uporabo njegovih funkcij.
- V naš program vključite datoteko z glavo niza, da boste lahko uporabljali njene funkcije.
- V našo kodo vključite imenski prostor std, da lahko uporabljate njegove razrede, ne da bi ga poklicali.
- Ustvarite razred z imenom Guru99.
- Z modifikatorjem javnega dostopa označite člane predavanja, ki jih bomo ustvarili, kot javno dostopne.
- Ustvarite spremenljivko niza z imenom tutorial_name.
- Ustvarite celoštevilčno spremenljivko z imenom id.
- Ustvarite funkcijo z imenom printname (). Ta funkcija v definiciji razreda ni definirana.
- Ustvarite funkcijo z imenom natisnjeno (). Ta funkcija je definirana v definiciji razreda. Njeno telo je dodano v definicijo razreda.
- Na konzolo natisnite vrednost id spremenljivke poleg drugega besedila. Upoštevajte, da je bilo to dodano v telo funkcije printid (). Izvede se šele, ko bo poklicana funkcija printid ().
- Konec telesa funkcije printid ().
- Konec telesa razreda Guru99.
- Začetek definicije funkcije printname ().
- Na konzolo poleg drugega besedila natisnite vrednost spremenljivke tutorial_name. Upoštevajte, da je bilo to dodano v telo funkcije printname (). Izvede se šele, ko je poklicana funkcija printname ().
- Konec definicije funkcije printname ().
- Pokličite glavno funkcijo. V telo te funkcije je treba dodati programsko logiko.
- Ustvarite primerek razreda Guru99 in mu dajte ime guru99.
- Z zgornjim primerkom spremenljivki tutorial_name dodelite vrednost C ++.
- S primerkom guru99 spremenljivki id dodelite vrednost 1001.
- Uporabite primerek guru99, da pokličete funkcijo printname ().
- Pokličite ukaz end (end line), da na konzolo natisnete novo prazno vrstico.
- Uporabite primerek guru99, da pokličete funkcijo printid ().
- Program mora po uspešnem zaključku vrniti vrednost.
- Konec telesa glavne () funkcije.
Konstruktorji in destruktorji
Kaj so konstruktorji?
Konstrukti so posebne funkcije, ki inicializirajo predmete. Prevajalniki C ++ pri ustvarjanju predmeta pokličejo konstruktor. Konstruktorji pomagajo dodeliti vrednosti članom razreda. Seveda je to potem, ko jim je dodeljeno nekaj pomnilniškega prostora.
Kaj so destruktorji?
Destruktorji pa pomagajo uničiti predmete razreda.
Ime konstruktorja mora biti podobno imenu razreda. Konstruktorji nimajo vrnjenega tipa.
Konstruktor je mogoče definirati znotraj ali zunaj telesa razreda. Če je definiran zunaj telesa razreda, ga je treba definirati z imenom razreda in operaterjem ločljivosti obsega (: :).
3. primer:
#includeusing namespace std;class ClassA {public:ClassA() {cout << "Class constructor called"< Izhod:
Tu je posnetek zaslona kode:
Razlaga kode:
- V kodo vključite glavo glave iostream, da boste lahko uporabljali njene funkcije.
- V našo kodo vključite imenski prostor std, da lahko uporabljate njegove razrede, ne da bi ga poklicali.
- Ustvarite razred z imenom ClassA.
- Z modifikatorjem javnega dostopa označite člana, ki ga bomo ustvarili, kot javno dostopnega.
- Ustvarite konstruktor za razred.
- Besedilo za tiskanje na konzolo, ko je poklican konstruktor. Endl je ključna beseda C ++, kar pomeni končno vrstico. Kazalec miške premakne v naslednjo vrstico.
- Konec telesa konstruktorja razreda.
- Ustvarite destruktor za razred.
- Besedilo za tiskanje na konzolo, ko je poklican destruktor. Endl je ključna beseda C ++, kar pomeni končno vrstico. Kazalec miške premakne v naslednjo vrstico.
- Konec telesa destruktorja.
- Konec predavanja.
- Pokličite glavno funkcijo. V telo te funkcije je treba dodati programsko logiko.
- Ustvarite objekt razreda in mu dajte ime a. Poklican bo konstruktor.
- Ustvarite celoštevilčno spremenljivko z imenom p in ji dodelite vrednost 1.
- Ustvari blok stavka if s spremenljivko p.
- Ustvarite objekt razreda in mu dajte ime b. Poklican bo destruktor.
- Konec telesa stavka if.
- Konec telesa glavne () funkcije.
Povzetek:
- C ++ je objektno usmerjen.
- Predavanja tvorijo glavne značilnosti C ++, zaradi katerih je objektno usmerjen.
- Razred C ++ združuje podatke in metode za obdelavo podatkov v enega.
- Razred je načrt predmeta.
- Razredi določajo obliko predmeta.
- Podatki in metode v razredu so znani kot člani razreda.
- Za dostop do članov predavanja uporabite primerek razreda.
- Za ustvarjanje razreda uporabimo ključno besedo class.
- Funkcije člana razreda lahko definiramo znotraj ali zunaj razreda.