C ++ klasė ir objektas su pavyzdžiu

Kas yra klasė?

C ++ klasė sujungia duomenis ir manipuliavimo duomenimis metodus į vieną. Klasės taip pat nustato objektų formas. Klasėje esantys duomenys ir metodai yra žinomi kaip klasės nariai. Klasė yra vartotojo apibrėžtas duomenų tipas. Norėdami pasiekti klasės narius, mes naudojame klasės egzempliorių. Klasę galite matyti kaip objekto projektą.

Klasė yra namo prototipas. Tai rodo durų, langų, grindų ir tt vietą ir dydį. Remdamiesi šiais aprašais, galime pastatyti namą. Namas tampa objektu. Iš prototipo galima sukurti daugybę namų. Be to, galima sukurti daug objektų iš klasės.

Aukščiau pateiktame paveiksle turime vieno namo prototipą. Iš šio prototipo mes sukūrėme du namus su skirtingomis savybėmis.

Šioje pamokoje sužinosite:

  • Kas yra klasė?
  • Klasės pavyzdys
  • Privatūs ir viešieji raktiniai žodžiai
  • Objekto apibrėžimas
  • Prieiga prie duomenų narių
  • Klasės nario funkcijos
  • Konstruktoriai ir naikintuvai

Klasės deklaracija

C + klasė apibrėžiama naudojant klasės raktinį žodį. Po to turėtų būti nurodytas klasės pavadinimas. Tada klasės kūnas pridedamas tarp garbanotų petnešų {}.

Sintaksė:

class class-name{// data// functions};
  • Klasės pavadinimas yra pavadinimas, kurį reikia priskirti klasei.
  • Duomenys yra klasės duomenys, paprastai deklaruojami kaip kintamieji.
  • Funkcijos yra klasės funkcijos.

Privatūs ir viešieji raktiniai žodžiai

Turite susidurti su šiais dviem raktiniais žodžiais. Jie yra prieigos modifikatoriai.

  • Privatu:

Kai privatus raktinis žodis naudojamas apibrėžiant funkciją ar klasę, jis tampa privatus. Tokie yra prieinami tik iš klasės.

  • Vieša:

Kita vertus, viešas raktinis žodis viešina duomenis / funkcijas. Su jais galima susipažinti ne iš klasės.

Objekto apibrėžimas

Objektai kuriami iš klasių. Klasės objektai deklaruojami panašiai kaip ir kintamieji. Turi prasidėti klasės pavadinimas, o po jo - objekto pavadinimas. Klasės tipo objektas.

Sintaksė:

class-name object-name;
  • Klasės pavadinimas yra klasės, iš kurios turi būti sukurtas objektas, pavadinimas.
  • Objekto pavadinimas yra vardas, kuris turi būti priskirtas naujam objektui.

Šis objekto sukūrimo iš klasės procesas yra žinomas kaip akimirksniu.

Prieiga prie duomenų narių

Norėdami pasiekti viešuosius klasės narius, naudojame (.) Taškų operatorių. Tai nariai, pažymėti viešosios prieigos modifikatoriumi.

1 pavyzdys:

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

Išvestis:

Čia yra kodo ekrano kopija:

Kodo paaiškinimas:

  1. Įtraukite „iostream“ antraštės failą į mūsų kodą, kad galėtumėte naudoti jo funkcijas.
  2. Įtraukite standartinę vardų sritį į mūsų kodą, kad galėtumėte naudoti jos klases nepaskambinę.
  3. Paskelbkite klasę pavadinimu Telefonas.
  4. Viešosios prieigos modifikatoriaus naudojimas kintamųjų, kuriuos ketiname sukurti, pažymėjimui kaip viešai prieinamiems.
  5. Paskelbkite dvigubo tipo duomenų kintamą kainą.
  6. Paskelbkite sveiko skaičiaus kintamąjį, pavadintą lizdais.
  7. Klasės kūno pabaiga.
  8. Pagrindinės () funkcijos iškvietimas. Programos logika turėtų būti įtraukta į jos turinį.
  9. Sukurkite Y6 tipo objektą, kurio tipas yra Telefonas. Tai vadinama akimirksniu.
  10. Sukurkite objektą pavadinimu Y7, kurio tipas yra Telefonas. Tai vadinama akimirksniu.
  11. Pasinaudokite objekto Y6 prieiga prie Telefono klasės kintamosios / nario kainos. Vertė nustatyta į 100,0. Y6 kaina dabar nustatyta 100,0.
  12. Pasiekite „Phone“ klasės kintamuosius / narius, naudodami objektą Y6. Vertė nustatyta į 2. Y6 laiko tarpsniai dabar nustatyti į 2.
  13. Pasinaudokite objekto Y7 prieiga prie Telefono klasės kintamojo / nario kainos. Vertė nustatyta į 200,0. Y7 kaina dabar nustatyta 200,0.
  14. Pasiekite „Phone“ klasės kintamuosius / narius, naudodami objektą Y7. Vertė nustatyta į 2. Y7 laiko tarpsniai dabar nustatyti į 2.
  15. Atsispausdinkite Y6 kainą konsolėje kartu su kitu tekstu.
  16. Atsispausdinkite Y7 kainą konsolėje kartu su kitu tekstu.
  17. Atspausdinkite Y6 vietų skaičių kartu su kitu tekstu.
  18. Atspausdinkite Y7 vietų skaičių kartu su kitu tekstu.
  19. Sėkmingai baigusi programa turi grąžinti vertę.
  20. Pagrindinės () funkcijos kūno pabaiga.

Kas yra privati ​​klasė?

Kurso narius, pažymėtus kaip privačius, gali pasiekti tik klasėje apibrėžtos funkcijos. Joks objektas ar funkcija, apibrėžta už klasės ribų, negali tiesiogiai pasiekti tokių narių. Privačios klasės narį gali pasiekti tik nario ir draugo funkcijos.

Kas yra saugoma klasė?

Klasių nariai, pažymėti kaip saugomi, turi pranašumą prieš tuos, kurie pažymėti kaip privatūs. Jie gali būti pasiekiami pagal jų apibrėžimo klasės funkcijas. Be to, juos galima pasiekti iš išvestinių klasių.

2 pavyzdys:

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

Išvestis:

Čia yra kodo ekrano kopija:

Kodo paaiškinimas:

  1. Įtraukite „iostream“ antraštės failą į mūsų kodą, kad galėtumėte naudoti jo funkcijas.
  2. Įtraukite standartinę vardų sritį į mūsų kodą, kad galėtumėte naudoti jos klases nepaskambinę.
  3. Sukurkite klasę pavadinimu „ClassA“.
  4. Norėdami pažymėti kuriamą klasės narį kaip viešai prieinamą, naudokite viešosios prieigos modifikatorių.
  5. Sukurkite funkciją pavadinimu set_a (), kuri užima vieną sveiko skaičiaus vertę val.
  6. Sukurkite funkciją pavadinimu get_a ().
  7. Norėdami pažymėti kuriamą klasės narį kaip privačiai prieinamą, naudokite privačios prieigos modifikatorių.
  8. Paskelbkite sveiko skaičiaus kintamąjį, pavadintą a.
  9. Klasės kūno pabaiga.
  10. Norėdami pasiekti funkciją get_a (), naudokite klasės pavadinimą ir srities skiriamosios gebos operatorių. Norime apibrėžti, ką veikia funkcija, kai ji yra iškviečiama.
  11. Funkcija get_a () turėtų grąžinti kintamojo a vertę, kai ji bus iškviesta.
  12. Funkcijos get_a () apibrėžimo pabaiga.
  13. Norėdami pasiekti funkciją set_a (), naudokite klasės pavadinimą ir srities skyros operatorių. Norime apibrėžti, ką veikia funkcija, kai ji yra iškviečiama.
  14. Kintamojo val vertės priskyrimas kintamajam a.
  15. Funkcijos set_a () apibrėžimo pabaiga.
  16. Iškvieskite pagrindinę () funkciją. Programos logika turėtų būti įtraukta į šios funkcijos tekstą.
  17. Sukurkite A klasės egzempliorių ir suteikite jam pavadinimą a.
  18. Naudokite aukščiau nurodytą klasės egzempliorių ir funkciją set_a (), kad kintamajam a priskirtumėte 20 reikšmę.
  19. Šiek tiek teksto atspausdinant šalia kintamojo a vertės konsolėje. Kintamojo a vertė gaunama iškvietus funkciją get_a ().
  20. Sėkmingai baigus, programa turi grąžinti vertę.
  21. Funkcijos kūno pabaiga main ().

3 pavyzdys:

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

Išvestis:

Čia yra kodo ekrano kopija:

Kodo paaiškinimas:

  1. Įtraukite „iostream“ antraštės failą į mūsų kodą, kad galėtumėte naudoti jo funkcijas.
  2. Įtraukite standartinę vardų sritį į mūsų kodą, kad galėtumėte naudoti jos klases nepaskambinę.
  3. Sukurkite klasę pavadinimu „ParentClass“.
  4. Norėdami pažymėti kuriamą klasės narį kaip apsaugotą, naudokite saugomą prieigos modifikatorių.
  5. Sukurkite sveiko skaičiaus kintamojo pavadinimą.
  6. Klasės kūno pabaiga.
  7. Sukurkite naują klasę pavadinimu „ChildClass“, kuri paveldi „ParentClass“.
  8. Naudokite saugomą prieigos modifikatorių, kad pažymėtumėte kuriamą klasės narį kaip prieinamą vaikų klasėms.
  9. Sukurkite funkciją setId (), kuri ima vieną sveiko skaičiaus reikšmę x.
  10. Kintamojo x vertės priskyrimas kintamajai vertei.
  11. Funkcijos setId () apibrėžimo pabaiga.
  12. Sukurkite funkciją pavadinimu displayValue ().
  13. Atsispausdinkite kintamojo pavadinimo reikšmę konsolėje kartu su kitu tekstu.
  14. Funkcijos displayValue () turinio pabaiga.
  15. Klasės pavadinimu „ChildClass“ kūno pabaiga.
  16. Iškvieskite pagrindinę () funkciją. Programos logika turėtų būti įtraukta į šios funkcijos tekstą.
  17. Sukurkite „ChildClass“ egzempliorių ir suteikite jam pavadinimą c.
  18. Norėdami priskirti 21 reikšmę kintamajam x, naudokite aukščiau nurodytą klasės egzempliorių ir funkciją setId ().
  19. Norėdami iškviesti funkciją, pavadintą displayValue (), naudokite aukščiau pateiktą klasės egzempliorių.
  20. Sėkmingai baigus, programa turi grąžinti vertę.
  21. Funkcijos kūno pabaiga main ().

Klasės nario funkcijos

Funkcijos padeda mums manipuliuoti duomenimis. Klasės nario funkcijas galima apibrėžti dviem būdais:

  • Klasės apibrėžimo viduje
  • Už klasės apibrėžimo ribų

Jei funkciją reikia apibrėžti už klasės apibrėžimo ribų, turime naudoti srities skiriamosios gebos operatorių (: :). Tai turėtų būti kartu su klasių ir funkcijų pavadinimais.

2 pavyzdys:

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

Išvestis:

Čia yra kodo ekrano kopija:

Kodo paaiškinimas:

  1. Įtraukite „iostream“ antraštės failą į mūsų programą, kad galėtumėte naudoti jo funkcijas.
  2. Įtraukite eilutės antraštės failą į mūsų programą, kad galėtumėte naudoti jo funkcijas.
  3. Įtraukite standartinę vardų sritį į mūsų kodą, kad galėtumėte naudoti jos klases nepaskambinę.
  4. Sukurkite klasę pavadinimu „Guru99“.
  5. Naudodamiesi viešosios prieigos modifikatoriumi pažymėkite kurso klasės narius kaip viešai prieinamus.
  6. Sukurkite eilutės kintamąjį pavadinimu tutorial_name.
  7. Sukurkite sveiko skaičiaus kintamąjį pavadinimu id.
  8. Sukurkite funkciją pavadinimu printname (). Ši funkcija nėra apibrėžta klasės apibrėžime.
  9. Sukurkite funkciją pavadinimu print (). Ši funkcija apibrėžta klasės apibrėžime. Jo kūnas buvo įtrauktas į klasės apibrėžimą.
  10. Atspausdinkite kintamojo ID vertę šalia kito teksto konsolėje. Atkreipkite dėmesį, kad tai buvo įtraukta į „printid“ () funkcijos turinį. Jis bus vykdomas tik iškvietus funkciją printid ().
  11. Funkcijos teksto pabaiga printid ().
  12. „Guru99“ klasės kūno pabaiga.
  13. Funkcijos printname () apibrėžimo pradžia.
  14. Atsispausdinkite kintamojo pamoka_vardas reikšmę konsolėje kartu su kitu tekstu. Atkreipkite dėmesį, kad tai buvo pridėta funkcijoje „printname ()“. Jis bus vykdomas tik iškvietus printname () funkciją.
  15. Funkcijos printname () apibrėžimo pabaiga.
  16. Iškvieskite pagrindinę () funkciją. Programos logika turėtų būti įtraukta į šios funkcijos tekstą.
  17. Sukurkite klasės „Guru99“ egzempliorių ir suteikdami jam pavadinimą „guru99“.
  18. Naudokite aukščiau nurodytą egzempliorių, kad priskirtumėte C ++ reikšmę kintamajam tutorial_name.
  19. Naudokite „guru99“ egzempliorių, kad priskirtumėte 1001 reikšmę kintamajam ID.
  20. Norėdami iškviesti funkciją printname (), naudokite egzempliorių „guru99“.
  21. Norėdami išspausdinti naują tuščią eilutę konsolėje, iškvieskite pabaigos (pabaigos eilutės) komandą.
  22. Norėdami iškviesti funkciją printid (), naudokite egzempliorių „guru99“.
  23. Sėkmingai baigus, programa turi grąžinti vertę.
  24. Pagrindinės () funkcijos kūno pabaiga.

Konstruktoriai ir naikintuvai

Kas yra konstruktoriai?

Konstruktai yra specialios funkcijos, kurios inicijuoja objektus. C ++ kompiliatoriai, sukurdami objektą, iškviečia konstruktorių. Konstruktoriai padeda priskirti vertes klasės nariams. Žinoma, tai yra po to, kai jiems yra skirta šiek tiek atminties.

Kas yra naikintuvai?

Kita vertus, naikintuvai padeda sunaikinti klasės objektus.

Konstruktoriaus pavadinimas turi būti panašus į klasės pavadinimą. Konstruktoriai neturi grąžinimo tipo.

Konstruktorius gali būti apibrėžtas klasės kūne arba už jo ribų. Jei jis apibrėžtas už klasės turinio ribų, jis turėtų būti apibrėžtas kartu su klasės pavadinimu ir taikymo srities operacijos operatoriumi::.

3 pavyzdys:

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

Išvestis:

Čia yra kodo ekrano kopija:

Kodo paaiškinimas:

  1. Įtraukite „iostream“ antraštės failą į kodą, kad galėtumėte naudoti jo funkcijas.
  2. Įtraukite standartinę vardų sritį į mūsų kodą, kad galėtumėte naudoti jos klases nepaskambinę.
  3. Sukurkite klasę pavadinimu „ClassA“.
  4. Naudodami viešosios prieigos modifikatorių pažymėkite narį, kurį ketiname sukurti, kaip viešai prieinamą.
  5. Sukurkite klasės konstruktorių.
  6. Tekstas, kurį reikia atspausdinti konsolėje, kai iškviečiamas konstruktorius. Pabaiga yra C ++ raktinis žodis, kuris reiškia pabaigos eilutę. Jis perkelia pelės žymeklį į kitą eilutę.
  7. Klasės konstruktoriaus korpuso pabaiga.
  8. Sukurkite klasės naikintuvą.
  9. Tekstas, kurį reikia atspausdinti konsolėje, kai iškviečiamas destruktorius. Pabaiga yra C ++ raktinis žodis, kuris reiškia pabaigos eilutę. Jis perkelia pelės žymeklį į kitą eilutę.
  10. Destruktoriaus kūno galas.
  11. Klasės kūno pabaiga.
  12. Iškvieskite pagrindinę () funkciją. Programos logika turėtų būti įtraukta į šios funkcijos tekstą.
  13. Sukurkite klasės objektą ir suteikite jam pavadinimą a. Bus pašauktas konstruktorius.
  14. Sukurkite sveiko skaičiaus kintamąjį, pavadintą p, ir priskirkite jam 1 reikšmę.
  15. Naudodami kintamąjį p, sukurkite „if“ sakinio bloką.
  16. Sukurkite klasės objektą ir suteikite jam vardą b. Bus iškviestas destruktorius.
  17. If teiginio turinio pabaiga.
  18. Pagrindinės () funkcijos kūno pabaiga.

Santrauka:

  • C ++ yra orientuotas į objektą.
  • Klasės sudaro pagrindinius C ++ bruožus, kurie daro jį orientuotą į objektą.
  • C ++ klasė sujungia duomenis ir manipuliavimo duomenimis metodus į vieną.
  • Klasė yra objekto projektas.
  • Klasės nustato objekto formą.
  • Klasėje esantys duomenys ir metodai yra žinomi kaip klasės nariai.
  • Norėdami pasiekti klasės narius, turėtumėte naudoti klasės egzempliorių.
  • Norėdami sukurti klasę, mes naudojame klasės raktinį žodį.
  • Klasės nario funkcijas galima apibrėžti klasėje arba už jos ribų.

Įdomios straipsniai...