C ++ klasse og objekt med eksempel

Innholdsfortegnelse:

Anonim

Hva er en klasse?

En C ++ klasse kombinerer data og metoder for å manipulere dataene til en. Klasser bestemmer også formene på objekter. Dataene og metodene i en klasse er kjent som klassemedlemmer. En klasse er en brukerdefinert datatype. For å få tilgang til klassemedlemmene bruker vi en forekomst av klassen. Du kan se en klasse som en tegning for et objekt.

En klasse er en prototype for et hus. Den viser plasseringen og størrelsen på dører, vinduer, gulv osv. Fra disse beskrivelsene kan vi bygge et hus. Huset blir gjenstanden. Det er mulig å lage mange hus fra prototypen. Det er også mulig å lage mange objekter fra en klasse.

I figuren ovenfor har vi en enkelt husprototype. Fra denne prototypen har vi laget to hus med forskjellige funksjoner.

I denne opplæringen lærer du:

  • Hva er en klasse?
  • Klasseeksempel
  • Private og offentlige nøkkelord
  • Objektdefinisjon
  • Få tilgang til datamedlemmer
  • Klassemedlemsfunksjoner
  • Konstruktører og destruktører

Klassedeklarasjon

I C + defineres en klasse ved hjelp av klassens nøkkelord. Dette skal følges av kursnavnet. Klassens kropp legges deretter til mellom krøllete bukseseler {}.

Syntaks:

class class-name{// data// functions};
  • Klassenavnet er navnet som skal tildeles klassen.
  • Dataene er dataene for klassen, vanligvis erklært som variabler.
  • Funksjonene er klassefunksjonene.

Private og offentlige nøkkelord

Du må ha kommet over disse to nøkkelordene. De er tilgangsmodifikatorer.

  • Privat:

Når det private nøkkelordet brukes til å definere en funksjon eller klasse, blir det privat. Slike er bare tilgjengelige innen klassen.

  • Offentlig:

Det offentlige nøkkelordet derimot gjør data / funksjoner offentlige. Disse er tilgjengelige utenfor klassen.

Objektdefinisjon

Objekter er opprettet fra klasser. Klasseobjekter blir deklarert på samme måte som variabler blir deklarert. Klassenavnet må starte, etterfulgt av objektnavnet. Objektet av klassetypen.

Syntaks:

class-name object-name;
  • Klassenavnet er navnet på klassen som et objekt skal opprettes fra.
  • Objektnavnet er navnet som skal tildeles det nye objektet.

Denne prosessen med å lage et objekt fra en klasse er kjent som instantiering.

Få tilgang til datamedlemmer

For å få tilgang til offentlige medlemmer av en klasse bruker vi (.) Dot-operatøren. Dette er medlemmer merket med offentlig tilgangsmodifikator.

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

Produksjon:

Her er et skjermbilde av koden:

Kode Forklaring:

  1. Ta med iostream header-filen i koden vår for å kunne bruke funksjonene.
  2. Inkludert std navneområdet i koden vår for å bruke klassene sine uten å kalle det.
  3. Erklære en klasse som heter Telefon.
  4. Ved å bruke modifikatoren for offentlig tilgang til å merke variablene vi skal lage som offentlig tilgjengelige.
  5. Deklarer den variable kostnaden for en dobbel datatype.
  6. Erklær en heltalsvariabel som heter slots.
  7. Avslutningen på klassens kropp.
  8. Ringer til hovedfunksjonen (). Programlogikken skal legges til i kroppen.
  9. Lag et objekt som heter Y6 av typen Telefon. Dette kalles instantiering.
  10. Lag et objekt som heter Y7 av typen Telefon. Dette kalles instantiering.
  11. Få tilgang til variabelen / medlemskostnaden for klasse Telefon ved hjelp av objektet Y6. Verdien er satt til 100,0. Kostnaden for Y6 er nå satt til 100,0.
  12. Få tilgang til variabel- / medlemsåpningene i klasse Telefon ved hjelp av objektet Y6. Verdien er satt til 2. Sporene for Y6 er nå satt til 2.
  13. Få tilgang til variabelen / medlemskostnaden for klasse Telefon ved hjelp av objektet Y7. Verdien er satt til 200,0. Kostnaden for Y7 er nå satt til 200,0.
  14. Få tilgang til variabel- / medlemsåpningene i klasse Telefon ved hjelp av objektet Y7. Verdien er satt til 2. Sporene for Y7 er nå satt til 2.
  15. Skriv ut kostnaden for Y6 på konsollen sammen med annen tekst.
  16. Skriv ut kostnaden for Y7 på konsollen sammen med annen tekst.
  17. Skriv ut antall spor for Y6 sammen med annen tekst.
  18. Skriv ut antall spor for Y7 sammen med annen tekst.
  19. Programmet må returnere en verdi etter vellykket gjennomføring.
  20. Slutten av kroppen til hovedfunksjonen ().

Hva er en privat klasse?

Klassemedlemmer merket som private har bare tilgang til funksjoner som er definert i klassen. Ethvert objekt eller funksjon som er definert utenfor klassen, har ikke direkte tilgang til slike medlemmer. Et privat klassemedlem er bare tilgjengelig av medlems- og vennefunksjoner.

Hva er en beskyttet klasse?

Klassemedlemmer merket som beskyttet har en fordel i forhold til de som er merket som private. Du kan få tilgang til dem med funksjoner i klassen for definisjonen. I tillegg er de tilgjengelige fra avledede klasser.

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

Produksjon:

Her er et skjermbilde av koden:

Kode Forklaring:

  1. Inkluder iostream header-filen i koden vår for å bruke funksjonene.
  2. Inkluder std navneområdet i koden vår for å bruke klassene uten å kalle det.
  3. Opprett en klasse som heter ClassA.
  4. Bruk modifikatoren for offentlig tilgang til å merke klassemedlemmet som skal opprettes som offentlig tilgjengelig.
  5. Opprett funksjonen kalt set_a () som tar en heltalsverdi.
  6. Opprett en funksjon som heter get_a ().
  7. Bruk modifikatoren for privat tilgang til å merke klassemedlemmet som skal opprettes som privat tilgjengelig.
  8. Erklær en heltalsvariabel kalt a.
  9. Avslutningen på klassens kropp.
  10. Bruk klassenavnet og operatøren for omfangsoppløsning for å få tilgang til funksjonen get_a (). Vi ønsker å definere hva funksjonen gjør når den blir påkalt.
  11. Funksjonen get_a () skal returnere verdien til variabelen a når den blir påkalt.
  12. Slutt på definisjonen av funksjonen get_a ().
  13. Bruk klassenavnet og operatøren for omfangsoppløsning for å få tilgang til funksjonen set_a (). Vi ønsker å definere hva funksjonen gjør når den blir påkalt.
  14. Tilordne verdien av variabelen val til variabelen a.
  15. Slutten av definisjonen av funksjonen set_a ().
  16. Ring til hovedfunksjonen (). Programlogikken skal legges til i kroppen til denne funksjonen.
  17. Opprett en forekomst av ClassA og gi den navnet a.
  18. Bruk klasseforekomst ovenfor og funksjonen set_a () for å tildele verdien 20 variabelen a.
  19. Skrive ut tekst sammen med verdien av variabelen a på konsollen. Verdien av variabelen a oppnås ved å ringe get_a () -funksjonen.
  20. Programmet må returnere verdi etter vellykket gjennomføring.
  21. Slutten av hoveddelen av funksjonen ().

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

Produksjon:

Her er et skjermbilde av koden:

Kode Forklaring:

  1. Inkluder iostream header-filen i koden vår for å bruke funksjonene.
  2. Inkluder std navneområdet i koden vår for å bruke klassene uten å kalle det.
  3. Opprett en klasse som heter ParentClass.
  4. Bruk den beskyttede tilgangsmodifikatoren til å merke klassemedlemmet som skal opprettes som beskyttet.
  5. Opprett en heltalsvariabel med navnet verdi.
  6. Avslutningen på klassens kropp.
  7. Opprett en ny klasse med navnet ChildClass som arver ParentClass.
  8. Bruk den beskyttede tilgangsmodifikatoren til å merke klassemedlemmet som skal opprettes som tilgjengelig for barneklasser.
  9. Opprett funksjonen som heter setId () som tar en heltall x.
  10. Tilordne verdien av variabelen x til variabelverdien.
  11. Slutt på definisjonen av funksjonen setId ().
  12. Opprett en funksjon som heter displayValue ().
  13. Skriv ut verdien av variabelen med navnet verdi på konsollen sammen med annen tekst.
  14. Slutt på hoveddelen av funksjons displayValue ().
  15. Slutten av kroppen til klassen som heter ChildClass.
  16. Ring til hovedfunksjonen (). Programlogikken skal legges til i kroppen til denne funksjonen.
  17. Opprett en forekomst av ChildClass og gi den navnet c.
  18. Bruk klasseinstansen ovenfor og funksjonen setId () for å tildele verdien 21 til variabelen x.
  19. Bruk klasseforekomst ovenfor for å kalle funksjonen som heter displayValue ().
  20. Programmet må returnere verdi etter vellykket gjennomføring.
  21. Slutten av hoveddelen av funksjonen ().

Klassemedlemsfunksjoner

Funksjoner hjelper oss med å manipulere data. Klassemedlemfunksjoner kan defineres på to måter:

  • Inne i klassedefinisjonen
  • Utenfor klassedefinisjonen

Hvis en funksjon skal defineres utenfor en klassedefinisjon, må vi bruke omfangsoppløsningsoperatoren (: :). Dette skal ledsages av klasse- og funksjonsnavn.

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

Produksjon:

Her er et skjermbilde av koden:

Kode Forklaring:

  1. Ta med iostream header-filen i programmet vårt for å bruke funksjonene.
  2. Ta med strengtekstfilen i programmet vårt for å bruke funksjonene.
  3. Inkluder std navneområdet i koden vår for å bruke klassene uten å kalle det.
  4. Lag en klasse som heter Guru99.
  5. Bruk modifikatoren for offentlig tilgang til å merke klassemedlemmene vi er i ferd med å opprette som offentlig tilgjengelige.
  6. Opprett en strengvariabel som heter tutorial_name.
  7. Opprett en heltalsvariabel med navnet id.
  8. Opprett en funksjon som heter utskriftsnavn (). Denne funksjonen er ikke definert i klassedefinisjonen.
  9. Opprett en funksjon som heter trykt (). Denne funksjonen er definert innenfor klassedefinisjonen. Kroppen er lagt til innenfor klassedefinisjonen.
  10. Skriv ut verdien av variabel-ID sammen med annen tekst på konsollen. Merk at dette er lagt til i kroppen til printid () -funksjonen. Den blir bare utført når printid () -funksjonen kalles.
  11. Slutten av funksjonen body printid ().
  12. Slutten på kroppen til klassen Guru99.
  13. Starten på definisjonen av funksjonen utskriftsnavn ().
  14. Skriv ut verdien av variabel tutorial_name på konsollen sammen med annen tekst. Merk at dette er lagt til i kroppen til utskriftsnavn () -funksjonen. Den vil bare bli utført når utskriftsnavnet () kalles.
  15. Slutten av definisjonen av funksjonen printname ().
  16. Ring til hovedfunksjonen (). Programlogikken skal legges til i kroppen til denne funksjonen.
  17. Lag en forekomst av klasse Guru99 og gi den navnet guru99.
  18. Bruk forekomsten ovenfor for å tilordne en verdi av C ++ til variabelen tutorial_name.
  19. Bruk guru99-forekomsten til å tilordne verdien 1001 til variabelen id.
  20. Bruk forekomsten guru99 for å ringe funksjonen utskriftsnavn ().
  21. Ring endekommandoen (sluttlinje) for å skrive ut en ny tom linje på konsollen.
  22. Bruk forekomsten guru99 for å kalle funksjonen printid ().
  23. Programmet må returnere verdi etter vellykket gjennomføring.
  24. Slutten av kroppen til hovedfunksjonen ().

Konstruktører og destruktører

Hva er konstruktører?

Konstrukter er spesialfunksjoner som initialiserer objekter. C ++ - kompilatorene kaller en konstruktør når de lager et objekt. Konstruktørene hjelper til med å tildele verdier til klassemedlemmene. Selvfølgelig er dette etter at de har blitt tildelt litt minne.

Hva er Destructors?

Destruktører hjelper derimot til å ødelegge klasseobjekter.

Konstruktørnavnet må være likt kursnavnet. Konstruktører har ikke returtype.

Konstruktøren kan defineres i eller utenfor klassens kropp. Hvis det er definert utenfor klassen, bør det defineres med klassenavnet og operatøren for omfangsoppløsning (: :).

Eksempel 3:

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

Produksjon:

Her er et skjermbilde av koden:

Kode Forklaring:

  1. Inkluder iostream header-filen i koden for å bruke funksjonene.
  2. Inkluder std navneområdet i koden vår for å bruke klassene uten å kalle det.
  3. Opprett en klasse som heter ClassA.
  4. Bruk modifikatoren for offentlig tilgang for å markere medlemmet vi skal lage som offentlig tilgjengelig.
  5. Lag en konstruktør for klassen.
  6. Tekst som skal skrives ut på konsollen når konstruktøren blir ringt. Endl er et C ++ nøkkelord, som betyr sluttlinje. Den beveger musepekeren til neste linje.
  7. Slutten på kroppen til klassekonstruktøren.
  8. Lag en destruktør for klassen.
  9. Tekst som skal skrives ut på konsollen når destruktoren kalles. Endl er et C ++ nøkkelord, som betyr sluttlinje. Den beveger musepekeren til neste linje.
  10. Slutten på destruktørens kropp.
  11. Avslutningen på klassens kropp.
  12. Ring til hovedfunksjonen (). Programlogikken skal legges til i kroppen til denne funksjonen.
  13. Lag et klasseobjekt og gi det navnet a. Konstruktøren vil bli kalt.
  14. Opprett en heltallvariabel med navnet p og tildel den verdien 1.
  15. Opprett en if-setningsblokk ved hjelp av variabelen p.
  16. Lag et klasseobjekt og gi det navnet b. Destruktoren vil bli kalt.
  17. Slutten på kroppen til if-setningen.
  18. Slutten av kroppen til hovedfunksjonen ().

Sammendrag:

  • C ++ er objektorientert.
  • Klasser utgjør hovedtrekkene i C ++ som gjør det objektorientert.
  • En C ++ klasse kombinerer data og metoder for å manipulere dataene til en.
  • En klasse er en blåkopi for et objekt.
  • Klasser bestemmer formen på et objekt.
  • Dataene og metodene i en klasse er kjent som klassemedlemmer.
  • For å få tilgang til klassemedlemmer, bør du bruke en forekomst av klassen.
  • For å lage en klasse bruker vi klassens nøkkelord.
  • Klassemedlemsfunksjonene kan defineres i eller utenfor en klasse.