C ++ klasa i objekt s primjerom

Sadržaj:

Anonim

Što je razred?

C ++ klasa kombinira podatke i metode za manipulaciju podacima u jedan. Nastava određuje i oblike predmeta. Podaci i metode sadržani u klasi poznati su kao članovi klase. Klasa je korisnički definirani tip podataka. Za pristup članovima razreda koristimo instancu klase. Klasu možete vidjeti kao nacrt objekta.

Razred neka bude prototip kuće. Pokazuje mjesto i veličine vrata, prozora, podova itd. Iz ovih opisa možemo izgraditi kuću. Kuća postaje objekt. Od prototipa je moguće stvoriti mnoge kuće. Također je moguće stvoriti mnogo objekata iz klase.

Na gornjoj slici imamo prototip jedne kuće. Od ovog prototipa stvorili smo dvije kuće s različitim značajkama.

U ovom vodiču naučit ćete:

  • Što je razred?
  • Primjer klase
  • Privatne i javne ključne riječi
  • Definicija objekta
  • Pristup članovima podataka
  • Funkcije člana razreda
  • Konstruktori i destruktori

Razredna deklaracija

U C +, klasa se definira pomoću ključne riječi class. Nakon toga treba slijediti naziv razreda. Zatim se tijelo klase dodaje između kovrčavih zagrada {}.

Sintaksa:

class class-name{// data// functions};
  • Naziv klase naziv je koji se dodjeljuje klasi.
  • Podaci su podaci za klasu, koji se obično deklariraju kao varijable.
  • Funkcije su funkcije klase.

Privatne i javne ključne riječi

Sigurno ste naišli na ove dvije ključne riječi. Oni su modifikatori pristupa.

  • Privatna:

Kad se privatna ključna riječ koristi za definiranje funkcije ili klase, ona postaje privatna. Takvi su dostupni samo unutar razreda.

  • Javnost:

Ključna riječ public, s druge strane, čini podatke / funkcije javnim. Oni su dostupni izvan razreda.

Definicija objekta

Objekti se izrađuju iz klasa. Objekti klase deklariraju se na sličan način kao što se deklariraju varijable. Naziv klase mora započeti, nakon čega slijedi naziv objekta. Objekt tipa klase.

Sintaksa:

class-name object-name;
  • Ime klase je ime klase iz koje treba stvoriti objekt.
  • Ime objekta je ime koje će se dodijeliti novom objektu.

Ovaj postupak stvaranja objekta iz klase poznat je pod nazivom instancijacija.

Pristup članovima podataka

Da bismo pristupili javnim članovima klase, koristimo (.) Točkasti operator. To su članovi označeni modifikatorom javnog pristupa.

Primjer 1:

#include using 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;}

Izlaz:

Evo snimke zaslona koda:

Objašnjenje koda:

  1. Uključite iostream datoteku zaglavlja u naš kod kako biste koristili njegove funkcije.
  2. Uključivanje prostora naziva std u naš kôd za korištenje njegovih klasa bez pozivanja.
  3. Proglasite predavanje pod nazivom Telefon.
  4. Korištenje modifikatora javnog pristupa za označavanje varijabli koje ćemo stvoriti kao javno dostupne.
  5. Navedite varijabilni trošak dvostruke vrste podataka.
  6. Proglasite cjelobrojnu varijablu s imenom slots.
  7. Kraj predavanja.
  8. Pozivanje glavne () funkcije. Logiku programa treba dodati unutar svog tijela.
  9. Stvorite objekt nazvan Y6 tipa Telefon. To se naziva instanciranje.
  10. Stvorite objekt nazvan Y7 tipa Telefon. To se naziva instanciranje.
  11. Pristupite varijabli / cijeni člana klase Telefon pomoću objekta Y6. Vrijednost je postavljena na 100,0. Trošak Y6 sada je postavljen na 100,0.
  12. Pristupite utorima varijable / člana klase Telefon pomoću objekta Y6. Vrijednost je postavljena na 2. Prorezi za Y6 sada su postavljeni na 2.
  13. Pristupite varijabli / cijeni člana klase Telefon pomoću objekta Y7. Vrijednost je postavljena na 200,0. Trošak Y7 sada je postavljen na 200,0.
  14. Pristupite utorima varijable / člana klase Telefon pomoću objekta Y7. Vrijednost je postavljena na 2. Prorezi za Y7 sada su postavljeni na 2.
  15. Ispišite trošak Y6 na konzoli uz drugi tekst.
  16. Ispišite trošak Y7 na konzoli uz drugi tekst.
  17. Ispišite broj mjesta za Y6 uz drugi tekst.
  18. Ispišite broj mjesta za Y7 uz drugi tekst.
  19. Program mora vratiti vrijednost nakon uspješnog završetka.
  20. Kraj tijela glavne () funkcije.

Što je privatni razred?

Članovima razreda koji su označeni kao privatni mogu pristupiti samo funkcije definirane unutar klase. Bilo koji objekt ili funkcija definirana izvan klase ne može izravno pristupiti takvim članovima. Članu privatne klase pristupaju samo funkcije člana i prijatelja.

Što je zaštićena klasa?

Članovi razreda koji su označeni kao zaštićeni imaju prednost u odnosu na one koji su označeni kao privatni. Mogu im pristupiti funkcije unutar klase njihove definicije. Uz to, mogu im se pristupiti iz izvedenih klasa.

Primjer 2:

#include using 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;}

Izlaz:

Evo snimke zaslona koda:

Objašnjenje koda:

  1. Uključite iostream datoteku zaglavlja u naš kod da biste koristili njegove funkcije.
  2. Uključite std prostor imena u naš kôd da biste koristili njegove klase bez pozivanja.
  3. Stvorite klasu pod nazivom ClassA.
  4. Upotrijebite modifikator javnog pristupa da biste člana razreda označili kao javno dostupnog.
  5. Stvorite funkciju pod nazivom set_a () koja uzima jednu cjelobrojnu vrijednost val.
  6. Stvorite funkciju nazvanu get_a ().
  7. Upotrijebite modifikator privatnog pristupa da biste člana klase označili kao privatno pristupačnog.
  8. Objavi cjelobrojnu varijablu pod nazivom a.
  9. Kraj predavanja.
  10. Upotrijebite ime klase i operator razlučivosti opsega za pristup funkciji get_a (). Želimo definirati što funkcija radi kad se pozove.
  11. Funkcija get_a () trebala bi vratiti vrijednost varijable a kada se pozove.
  12. Kraj definicije funkcije get_a ().
  13. Upotrijebite naziv klase i operator razlučivosti opsega za pristup funkciji set_a (). Želimo definirati što funkcija radi kad se pozove.
  14. Dodjeljivanje vrijednosti varijable val varijabli a.
  15. Kraj definicije funkcije set_a ().
  16. Pozovite glavnu () funkciju. Logiku programa treba dodati unutar tijela ove funkcije.
  17. Stvorite primjerak ClassA i dajte mu ime a.
  18. Koristite gornju instancu klase i funkciju set_a () da biste varijabli a dodijelili vrijednost 20.
  19. Ispis određenog teksta uz vrijednost varijable a na konzoli. Vrijednost varijable a dobiva se pozivanjem funkcije get_a ().
  20. Program mora vratiti vrijednost nakon uspješnog završetka.
  21. Kraj tijela funkcije main ().

Primjer 3:

#include using 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;}

Izlaz:

Evo snimke zaslona koda:

Objašnjenje koda:

  1. Uključite iostream datoteku zaglavlja u naš kod da biste koristili njegove funkcije.
  2. Uključite std prostor imena u naš kôd da biste koristili njegove klase bez pozivanja.
  3. Stvorite razred s imenom ParentClass.
  4. Pomoću modifikatora zaštićenog pristupa označite člana klase koji će se stvoriti kao zaštićen.
  5. Stvorite cjelobrojnu varijablu s imenom.
  6. Kraj predavanja.
  7. Stvorite novu klasu pod imenom ChildClass koja nasljeđuje ParentClass.
  8. Pomoću modifikatora zaštićenog pristupa označite člana klase koji će se stvoriti kao dostupan dječjim razredima.
  9. Stvorite funkciju pod nazivom setId () koja uzima jednu cjelobrojnu vrijednost x.
  10. Dodjeljivanje vrijednosti varijable x vrijednosti varijable.
  11. Kraj definicije funkcije setId ().
  12. Stvorite funkciju koja se zove displayValue ().
  13. Ispišite vrijednost varijable imenovane vrijednosti na konzoli uz drugi tekst.
  14. Kraj tijela funkcije displayValue ().
  15. Kraj tijela klase ChildClass.
  16. Pozovite glavnu () funkciju. Logiku programa treba dodati unutar tijela ove funkcije.
  17. Stvorite instancu ChildClass i dajte mu ime c.
  18. Koristite gornju instancu klase i funkciju setId () da biste varijabli x dodijelili vrijednost 21.
  19. Upotrijebite gornju instancu klase za pozivanje funkcije koja se naziva displayValue ().
  20. Program mora vratiti vrijednost nakon uspješnog završetka.
  21. Kraj tijela funkcije main ().

Funkcije člana razreda

Funkcije nam pomažu u manipulaciji podacima. Funkcije člana klase mogu se definirati na dva načina:

  • Unutar definicije klase
  • Izvan definicije razreda

Ako se funkcija treba definirati izvan definicije klase, moramo koristiti operator razlučivanja opsega (: :). Uz to trebaju biti navedena imena klasa i funkcija.

Primjer 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;}

Izlaz:

Evo snimke zaslona koda:

Objašnjenje koda:

  1. Uključite datoteku zaglavlja iostream u naš program da biste koristili njegove funkcije.
  2. Uključite datoteku zaglavlja niza u naš program da biste koristili njegove funkcije.
  3. Uključite std prostor imena u naš kôd da biste koristili njegove klase bez pozivanja.
  4. Stvorite razred pod nazivom Guru99.
  5. Pomoću modifikatora javnog pristupa označite članove razreda koje ćemo stvoriti kao javno dostupne.
  6. Stvorite varijablu niza pod nazivom tutorial_name.
  7. Stvorite cjelobrojnu varijablu pod nazivom id.
  8. Stvorite funkciju s imenom printname (). Ova funkcija nije definirana unutar definicije klase.
  9. Stvorite funkciju nazvanu tiskan (). Ova je funkcija definirana u definiciji klase. Njezino je tijelo dodano u definiciju klase.
  10. Ispišite vrijednost id varijable uz drugi tekst na konzoli. Imajte na umu da je ovo dodano unutar tijela funkcije printid (). Izvršit će se samo kad se pozove funkcija printid ().
  11. Kraj tijela funkcije printid ().
  12. Kraj tijela klase Guru99.
  13. Početak definicije funkcije printname ().
  14. Ispišite vrijednost varijable tutorial_name na konzoli uz drugi tekst. Imajte na umu da je ovo dodano u tijelo funkcije printname (). Izvršit će se samo kad se pozove funkcija printname ().
  15. Kraj definicije funkcije printname ().
  16. Pozovite glavnu () funkciju. Logiku programa treba dodati unutar tijela ove funkcije.
  17. Stvorite instancu klase Guru99 i dajte joj ime guru99.
  18. Koristite gornju instancu da biste varijabli tutorial_name dodijelili vrijednost C ++.
  19. Koristite instancu guru99 za dodjeljivanje vrijednosti 1001 varijabli id.
  20. Upotrijebite instancu guru99 za pozivanje funkcije printname ().
  21. Pozovite naredbu end (end line) da biste ispisali novi prazan redak na konzoli.
  22. Upotrijebite instancu guru99 za pozivanje funkcije printid ().
  23. Program mora vratiti vrijednost nakon uspješnog završetka.
  24. Kraj tijela glavne () funkcije.

Konstruktori i destruktori

Što su konstruktori?

Konstrukti su posebne funkcije koje inicijaliziraju objekte. Kompajleri C ++ pozivaju konstruktor prilikom stvaranja objekta. Konstruktori pomažu dodijeliti vrijednosti članovima razreda. Naravno, to je nakon što im je dodijeljeno malo memorijskog prostora.

Što su destruktori?

S druge strane, destruktori pomažu u uništavanju predmeta klase.

Ime konstruktora mora biti slično imenu klase. Konstruktori nemaju povratni tip.

Konstruktor se može definirati unutar ili izvan tijela klase. Ako je definirano izvan tijela klase, trebalo bi ga definirati s imenom klase i operatorom razlučivanja opsega (: :).

Primjer 3:

#include using namespace std;class ClassA {public:ClassA() {cout << "Class constructor called"<

Izlaz:

Evo snimke zaslona koda:

Objašnjenje koda:

  1. Uključite datoteku zaglavlja iostream u kôd da biste koristili njegove funkcije.
  2. Uključite std prostor imena u naš kôd da biste koristili njegove klase bez pozivanja.
  3. Stvorite klasu pod nazivom ClassA.
  4. Upotrijebite modifikator javnog pristupa da biste člana kojeg ćemo stvoriti označili kao javno dostupnog.
  5. Stvorite konstruktor za klasu.
  6. Tekst za ispis na konzoli kad se pozove konstruktor. Endl je ključna riječ C ++, što znači završni redak. Premješta kursor miša u sljedeći redak.
  7. Kraj tijela konstruktora klase.
  8. Stvorite destruktor za klasu.
  9. Tekst za ispis na konzoli kad se pozove destruktor. Endl je ključna riječ C ++, što znači završni redak. Premješta kursor miša u sljedeći redak.
  10. Kraj tijela destruktora.
  11. Kraj predavanja.
  12. Pozovite glavnu () funkciju. Logiku programa treba dodati unutar tijela ove funkcije.
  13. Stvorite objekt klase i dajte mu ime a. Pozvat će se konstruktor.
  14. Stvorite cjelobrojnu varijablu imena p i dodijelite joj vrijednost 1.
  15. Stvorite blok naredbe if pomoću varijable p.
  16. Stvorite objekt klase i dajte mu ime b. Pozvat će se destruktor.
  17. Kraj tijela izjave if.
  18. Kraj tijela glavne () funkcije.

Sažetak:

  • C ++ je objektno orijentiran.
  • Predavanja čine glavne značajke C ++-a koje ga čine objektno orijentiranim.
  • C ++ klasa kombinira podatke i metode za manipulaciju podacima u jedan.
  • Klasa je nacrt predmeta.
  • Klase određuju oblik predmeta.
  • Podaci i metode sadržani u klasi poznati su kao članovi klase.
  • Da biste pristupili članovima klase, trebali biste koristiti instancu klase.
  • Da bismo stvorili klasu, koristimo ključnu riječ class.
  • Funkcije člana klase mogu se definirati unutar ili izvan klase.