C ++ klase un objekts ar piemēru

Satura rādītājs:

Anonim

Kas ir klase?

C ++ klase apvieno datus un metodes datu apstrādei vienā. Klases nosaka arī objektu formas. Klasei piederošie dati un metodes ir pazīstami kā klases dalībnieki. Klase ir lietotāja definēts datu tips. Lai piekļūtu klases biedriem, mēs izmantojam klases eksemplāru. Jūs varat redzēt klasi kā objekta projektu.

Klase ir mājas prototips. Tas parāda durvju, logu, grīdu utt. Atrašanās vietu un izmērus. No šiem aprakstiem mēs varam uzbūvēt māju. Māja kļūst par objektu. No prototipa ir iespējams izveidot daudzas mājas. Turklāt no klases ir iespējams izveidot daudzus objektus.

Iepriekš redzamajā attēlā mums ir viens mājas prototips. No šī prototipa mēs esam izveidojuši divas mājas ar dažādām funkcijām.

Šajā apmācībā jūs uzzināsiet:

  • Kas ir klase?
  • Klases piemērs
  • Privātie un publiskie atslēgas vārdi
  • Objekta definīcija
  • Piekļuve datu dalībniekiem
  • Klases locekļa funkcijas
  • Konstruktori un iznīcinātāji

Klases deklarācija

Programmā C + klase tiek definēta, izmantojot klases atslēgvārdu. Tam vajadzētu sekot klases nosaukumam. Pēc tam klases korpuss tiek pievienots starp cirtainajām lencēm {}.

Sintakse:

class class-name{// data// functions};
  • Klases nosaukums ir nosaukums, kas jāpiešķir klasei.
  • Dati ir klases dati, kurus parasti deklarē kā mainīgos.
  • Funkcijas ir klases funkcijas.

Privātie un publiskie atslēgas vārdi

Jums noteikti ir jāsaskaras ar šiem diviem atslēgvārdiem. Tie ir piekļuves modifikatori.

  • Privāts:

Ja funkcijas vai klases definēšanai tiek izmantots privātais atslēgvārds, tas kļūst privāts. Tādiem var piekļūt tikai no klases.

  • Publiski:

Savukārt publiskais atslēgvārds padara datus / funkcijas publiski pieejamus. Tie ir pieejami ārpus klases.

Objekta definīcija

Objekti tiek veidoti no klasēm. Klases objekti tiek deklarēti līdzīgi kā mainīgie. Jāsāk klases nosaukums, kam seko objekta nosaukums. Klases tipa objekts.

Sintakse:

class-name object-name;
  • Klases nosaukums ir klases nosaukums, no kura tiks izveidots objekts.
  • Objekta nosaukums ir nosaukums, kas jāpiešķir jaunajam objektam.

Šis objekta izveides process no klases ir pazīstams kā instantiation.

Piekļuve datu dalībniekiem

Lai piekļūtu klases publiskiem dalībniekiem, mēs izmantojam (.) Punktu operatoru. Tie ir dalībnieki, kas atzīmēti ar publiskas piekļuves pārveidotāju.

1. piemērs:

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

Izeja:

Šeit ir koda ekrānuzņēmums:

Koda skaidrojums:

  1. Iekļaujiet iostream galvenes failu mūsu kodā, lai izmantotu tā funkcijas.
  2. Standarta nosaukumvietas iekļaušana mūsu kodā, lai izmantotu tās klases, to neizsaucot.
  3. Pasludiniet klasi ar nosaukumu Tālrunis.
  4. Izmantojot publiskās piekļuves modifikatoru, lai atzīmētu mainīgos, kurus mēs gatavojamies izveidot, kā publiski pieejamus.
  5. Deklarēt divkārša datu veida mainīgās izmaksas.
  6. Paziņojiet vesela skaitļa mainīgo ar laika nišām.
  7. Klases ķermeņa beigas.
  8. Galvenās () funkcijas izsaukšana. Programmas loģika jāpievieno tās pamattekstā.
  9. Izveidojiet objektu ar nosaukumu Y6, kura tips ir Tālrunis. To sauc par instantiāciju.
  10. Izveidojiet objektu ar nosaukumu Y7, kura tips ir Tālrunis. To sauc par instantiāciju.
  11. Piekļūstiet tālruņa klases mainīgajām / dalībnieka izmaksām, izmantojot objektu Y6. Vērtība ir iestatīta uz 100,0. Tagad Y6 izmaksas ir iestatītas uz 100,0.
  12. Piekļūstiet tālruņa klases mainīgo / dalībnieku laika nišām, izmantojot objektu Y6. Vērtība ir iestatīta uz 2. Vietas Y6 laika nišas tagad ir iestatītas uz 2.
  13. Piekļūstiet tālruņa klases mainīgajām / dalībnieka izmaksām, izmantojot objektu Y7. Vērtība ir iestatīta uz 200,0. Tagad Y7 izmaksas ir iestatītas uz 200,0.
  14. Piekļūstiet tālruņa klases mainīgo / dalībnieku laika nišām, izmantojot objektu Y7. Vērtība ir iestatīta uz 2. Vietām Y7 tagad ir iestatīta 2.
  15. Izdrukājiet Y6 izmaksas konsolē līdzās citam tekstam.
  16. Drukājiet Y7 izmaksas konsolē līdzās citam tekstam.
  17. Izdrukājiet Y6 slotu skaitu kopā ar citu tekstu.
  18. Izdrukājiet Y7 slotu skaitu kopā ar citu tekstu.
  19. Pēc sekmīgas pabeigšanas programmai jāatgriež vērtība.
  20. Galvenās () funkcijas ķermeņa beigas.

Kas ir privātā klase?

Klases locekļiem, kas atzīmēti kā privāti, var piekļūt tikai ar klasē definētām funkcijām. Neviens objekts vai funkcija, kas definēta ārpus klases, nevar tieši piekļūt šādiem dalībniekiem. Privātās klases dalībniekam var piekļūt tikai dalībnieka un drauga funkcijas.

Kas ir aizsargātā klase?

Klases locekļiem, kas atzīmēti kā aizsargāti, ir priekšrocība salīdzinājumā ar tiem, kas atzīmēti kā privāti. Tiem var piekļūt pēc funkcijām, kas ietilpst to definīcijas klasē. Turklāt tiem var piekļūt no atvasinātām klasēm.

2. piemērs:

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

Izeja:

Šeit ir koda ekrānuzņēmums:

Koda skaidrojums:

  1. Iekļaujiet iostream galvenes failu mūsu kodā, lai izmantotu tā funkcijas.
  2. Iekļaujiet standarta koda telpu mūsu kodā, lai izmantotu tās klases, to neizsaucot.
  3. Izveidojiet klasi ar nosaukumu ClassA.
  4. Izmantojiet publiskās piekļuves modifikatoru, lai atzīmētu izveidojamo klases dalībnieku kā publiski pieejamu.
  5. Izveidojiet funkciju set_a (), kas ņem vienu veselu skaitli vērtību val.
  6. Izveidojiet funkciju get_a ().
  7. Izmantojiet privātās piekļuves modifikatoru, lai atzīmētu izveidojamo klases dalībnieku kā privāti pieejamu.
  8. Paziņojiet vesela skaitļa mainīgo ar nosaukumu a.
  9. Klases ķermeņa beigas.
  10. Izmantojiet klases nosaukumu un darbības jomas izšķirtspējas operatoru, lai piekļūtu funkcijai get_a (). Mēs vēlamies definēt, ko funkcija veic, kad tā tiek izsaukta.
  11. Funkcijai get_a () jāatgriež mainīgā a vērtība, kad tā tiek izsaukta.
  12. Funkcijas get_a () definīcijas beigas.
  13. Izmantojiet klases nosaukumu un darbības jomas izšķirtspējas operatoru, lai piekļūtu funkcijai set_a (). Mēs vēlamies definēt, ko funkcija veic, kad tā tiek izsaukta.
  14. Piešķirt mainīgā val vērtību mainīgajam a.
  15. Funkcijas set_a () definīcijas beigas.
  16. Izsauciet galveno () funkciju. Šīs funkcijas pamattekstā jāpievieno programmas loģika.
  17. Izveidojiet A klases instanci un piešķiriet tai nosaukumu a.
  18. Izmantojiet iepriekš minēto klases instanci un funkciju set_a (), lai piešķirtu mainīgajam a vērtību 20.
  19. Drukājot tekstu konsolē blakus mainīgā a vērtībai. Mainīgā lieluma vērtību iegūst, izsaucot funkciju get_a ().
  20. Pēc sekmīgas pabeigšanas programmai ir jāatgriež vērtība.
  21. Funkcijas galvenā daļa ().

3. piemērs:

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

Izeja:

Šeit ir koda ekrānuzņēmums:

Koda skaidrojums:

  1. Iekļaujiet iostream galvenes failu mūsu kodā, lai izmantotu tā funkcijas.
  2. Iekļaujiet standarta koda telpu mūsu kodā, lai izmantotu tās klases, to neizsaucot.
  3. Izveidojiet klasi ar nosaukumu ParentClass.
  4. Izmantojiet aizsargāto piekļuves modifikatoru, lai atzīmētu izveidojamo klases dalībnieku kā aizsargātu.
  5. Izveidojiet vesela skaitļa mainīgā vērtību.
  6. Klases ķermeņa beigas.
  7. Izveidojiet jaunu klasi ar nosaukumu ChildClass, kas pārņem vecāku klasi.
  8. Izmantojiet aizsargāto piekļuves modifikatoru, lai atzīmētu izveidojamo klases dalībnieku kā pieejamu bērnu klasēm.
  9. Izveidojiet funkciju setId (), kas ņem vienu veselu skaitli x.
  10. Piešķirt mainīgā x vērtību mainīgā vērtībai.
  11. Funkcijas setId () definīcijas beigas.
  12. Izveidojiet funkciju ar nosaukumu displayValue ().
  13. Drukājiet mainīgā nosaukto vērtību konsolē līdzās citam tekstam.
  14. Funkcijas displayValue () pamatteksta beigas.
  15. Klases, kuras nosaukums ir ChildClass, korpusa beigas.
  16. Izsauciet galveno () funkciju. Šīs funkcijas pamattekstā jāpievieno programmas loģika.
  17. Izveidojiet ChildClass instanci un piešķiriet tai nosaukumu c.
  18. Izmantojiet iepriekš minēto klases instanci un funkciju setId (), lai piešķirtu mainīgajam x vērtību 21.
  19. Izmantojiet iepriekš minēto klases gadījumu, lai izsauktu funkciju ar nosaukumu displayValue ().
  20. Pēc sekmīgas pabeigšanas programmai ir jāatgriež vērtība.
  21. Funkcijas galvenā daļa ().

Klases locekļa funkcijas

Funkcijas palīdz mums manipulēt ar datiem. Klases dalībnieka funkcijas var definēt divējādi:

  • Klases definīcijas iekšpusē
  • Ārpus klases definīcijas

Ja funkcija ir jādefinē ārpus klases definīcijas, mums jāizmanto darbības jomas izšķirtspējas operators (: :). Tam jāpievieno klašu un funkciju nosaukumi.

2. piemērs:

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

Izeja:

Šeit ir koda ekrānuzņēmums:

Koda skaidrojums:

  1. Iekļaujiet iostream galvenes failu mūsu programmā, lai izmantotu tā funkcijas.
  2. Iekļaujiet virknes galvenes failu mūsu programmā, lai izmantotu tā funkcijas.
  3. Iekļaujiet standarta koda telpu mūsu kodā, lai izmantotu tās klases, to neizsaucot.
  4. Izveidojiet klasi ar nosaukumu Guru99.
  5. Izmantojiet publiskās piekļuves modifikatoru, lai atzīmētu klases dalībniekus, kurus mēs izveidojam, kā publiski pieejamus.
  6. Izveidojiet virknes mainīgo ar nosaukumu tutorial_name.
  7. Izveidojiet vesela skaitļa mainīgo ar nosaukumu id.
  8. Izveidojiet funkciju ar nosaukumu printname (). Šī funkcija nav definēta klases definīcijā.
  9. Izveidojiet funkciju ar nosaukumu print (). Šī funkcija ir definēta klases definīcijā. Tās korpuss ir pievienots klases definīcijā.
  10. Drukājiet mainīgā id vērtību blakus citam tekstam konsolē. Ņemiet vērā, ka tas ir pievienots printid () funkcijas pamattekstā. Tas tiks izpildīts tikai tad, kad tiks izsaukta funkcija printid ().
  11. Funkcijas pamatteksta printid () beigas.
  12. Guru99 klases ķermeņa beigas.
  13. Funkcijas printname () definīcijas sākums.
  14. Drukājiet konsolē mainīgā tutorial_name vērtību blakus citam tekstam. Ņemiet vērā, ka tas ir pievienots printname () funkcijas pamattekstā. Tas tiks izpildīts tikai tad, kad tiks izsaukta funkcija printname ().
  15. Funkcijas printname () definīcijas beigas.
  16. Izsauciet galveno () funkciju. Šīs funkcijas pamattekstā jāpievieno programmas loģika.
  17. Izveidojiet klases Guru99 instanci un piešķiriet tai vārdu guru99.
  18. Izmantojiet iepriekš minēto gadījumu, lai piešķirtu C ++ vērtību mainīgajam tutorial_name.
  19. Izmantojiet guru99 gadījumu, lai mainīgajam id piešķirtu vērtību 1001.
  20. Izmantojiet instanci guru99, lai izsauktu funkciju printname ().
  21. Izsauciet komandu end (end line), lai konsolē izdrukātu jaunu tukšu līniju.
  22. Izmantojiet instanci guru99, lai izsauktu funkciju printid ().
  23. Pēc sekmīgas pabeigšanas programmai ir jāatgriež vērtība.
  24. Galvenās () funkcijas ķermeņa beigas.

Konstruktori un iznīcinātāji

Kas ir konstruktori?

Konstrukti ir īpašas funkcijas, kas inicializē objektus. C ++ sastādītāji, izveidojot objektu, izsauc konstruktoru. Konstruktori palīdz piešķirt vērtības klases biedriem. Protams, tas notiek pēc tam, kad viņiem ir atvēlēta nedaudz atmiņas vietas.

Kas ir iznīcinātāji?

Savukārt iznīcinātāji palīdz iznīcināt klases priekšmetus.

Konstruktora nosaukumam jābūt līdzīgam klases nosaukumam. Konstruktoriem nav atgriešanās veida.

Konstruktoru var definēt klases korpusā vai ārpus tā. Ja tas ir definēts ārpus klases ķermeņa, tas jādefinē ar klases nosaukumu un darbības jomas izšķiršanas operatoru (: :).

3. piemērs:

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

Izeja:

Šeit ir koda ekrānuzņēmums:

Koda skaidrojums:

  1. Iekļaujiet kodā iostream galvenes failu, lai izmantotu tā funkcijas.
  2. Iekļaujiet standarta koda telpu mūsu kodā, lai izmantotu tās klases, to neizsaucot.
  3. Izveidojiet klasi ar nosaukumu ClassA.
  4. Izmantojiet publiskās piekļuves modifikatoru, lai atzīmētu dalībnieku, kuru mēs izveidojam, kā publiski pieejamu.
  5. Izveidojiet klases konstruktoru.
  6. Teksts, kas drukājams uz konsoles, kad tiek izsaukts konstruktors. Endl ir C ++ atslēgvārds, kas nozīmē beigu līniju. Tas pārvieto peles kursoru uz nākamo rindu.
  7. Klases konstruktora korpusa beigas.
  8. Izveidojiet klases iznīcinātāju.
  9. Teksts, kas drukājams uz konsoles, kad tiek izsaukts iznīcinātājs. Endl ir C ++ atslēgvārds, kas nozīmē beigu līniju. Tas pārvieto peles kursoru uz nākamo rindu.
  10. Destruktora ķermeņa beigas.
  11. Klases ķermeņa beigas.
  12. Izsauciet galveno () funkciju. Šīs funkcijas pamattekstā jāpievieno programmas loģika.
  13. Izveidojiet klases objektu un piešķiriet tam nosaukumu a. Tiks izsaukts konstruktors.
  14. Izveidojiet vesela skaitļa mainīgo ar nosaukumu p un piešķiriet tam vērtību 1.
  15. Izveidojiet if paziņojuma bloku, izmantojot mainīgo p.
  16. Izveidojiet klases objektu un piešķiriet tam vārdu b. Tiks izsaukts iznīcinātājs.
  17. Ja paziņojuma pamatteksta beigas.
  18. Galvenās () funkcijas ķermeņa beigas.

Kopsavilkums:

  • C ++ ir orientēta uz objektu.
  • Klases veido galvenās C ++ iezīmes, kas padara to objektorientētu.
  • C ++ klase apvieno datus un metodes datu apstrādei vienā.
  • Klase ir objekta projekts.
  • Klases nosaka objekta formu.
  • Klasei piederošie dati un metodes ir pazīstami kā klases dalībnieki.
  • Lai piekļūtu klases dalībniekiem, jums jāizmanto klases eksemplārs.
  • Lai izveidotu klasi, mēs izmantojam klases atslēgvārdu.
  • Klases locekļa funkcijas var definēt klasē vai ārpus tās.