Mikä on luokka?
C ++ -luokka yhdistää tiedot ja menetelmät tietojen käsittelemiseksi yhdeksi. Luokat määrittävät myös esineiden muodot. Luokan tiedot ja menetelmät tunnetaan luokan jäseninä. Luokka on käyttäjän määrittelemä tietotyyppi. Luokan jäsenille pääsemiseksi käytämme luokan esiintymää. Voit nähdä luokan objektin suunnitelmana.
Luokka on talon prototyyppi. Se näyttää ovien, ikkunoiden, lattian jne. Sijainnin ja koot. Näistä kuvauksista voimme rakentaa talon. Talosta tulee esine. Prototyypistä on mahdollista luoda monia taloja. Lisäksi on mahdollista luoda monia esineitä luokasta.
Yllä olevassa kuvassa meillä on yksi talon prototyyppi. Tästä prototyypistä olemme luoneet kaksi taloa, joilla on erilaiset ominaisuudet.
Tässä opetusohjelmassa opit:
- Mikä on luokka?
- Luokan esimerkki
- Yksityiset ja julkiset avainsanat
- Kohteen määritelmä
- Tietojäsenten käyttö
- Luokan jäsenen toiminnot
- Rakentajat ja tuhoajat
Luokan vakuutus
Luokassa C + luokka määritellään luokan avainsanalla. Tämän jälkeen tulisi olla luokan nimi. Luokan runko lisätään sitten kiharoiden aaltosulkeiden väliin {}.
Syntaksi:
class class-name{// data// functions};
- Luokan nimi on luokalle annettava nimi.
- Tiedot ovat luokan tietoja, jotka yleensä ilmoitetaan muuttujina.
- Funktiot ovat luokan toimintoja.
Yksityiset ja julkiset avainsanat
Sinun on täytynyt törmätä näihin kahteen avainsanaan. Ne ovat pääsymodifikaattoreita.
- Yksityinen:
Kun yksityistä avainsanaa käytetään funktion tai luokan määrittelemiseen, siitä tulee yksityinen. Sellaisiin pääsee vain luokan sisällä.
- Julkinen:
Julkinen avainsana puolestaan tekee tiedoista / toiminnoista julkisen. Näihin pääsee luokan ulkopuolelta.
Kohteen määritelmä
Objektit luodaan luokista. Luokkaobjektit ilmoitetaan samalla tavalla kuin muuttujat. Luokan nimen on aloitettava ja objektin nimi. Luokkatyypin objekti.
Syntaksi:
class-name object-name;
- Luokan nimi on sen luokan nimi, josta objekti on tarkoitus luoda.
- Objektinimi on uudelle objektille osoitettava nimi.
Tätä objektin luontiprosessia luokasta kutsutaan instantiationiksi.
Tietojäsenten käyttö
Voit käyttää luokan julkisia jäseniä käyttämällä (.) Pisteoperaattoria. Nämä ovat jäseniä, jotka on merkitty julkisen pääsyn muokkaajalla.
Esimerkki 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;}
Tuotos:
Tässä on kuvakaappaus koodista:
Koodin selitys:
- Sisällytä iostream-otsikkotiedosto koodiin, jotta voit käyttää sen toimintoja.
- Sisältämällä standardin nimitila koodissamme käyttämään luokkia kutsumatta sitä.
- Ilmoita luokka nimeltä Puhelin.
- Julkisen käyttöoikeuden muokkaimen avulla voit merkitä muuttujat, jotka aiomme luoda julkisesti saataville.
- Ilmoita kaksinkertaisen tietotyypin muuttuvat kustannukset.
- Ilmoita kokonaisluku muuttuja nimeltään aikavälit.
- Luokan loppu.
- Päätoiminnon () kutsuminen. Ohjelmalogiikka tulisi lisätä sen runkoon.
- Luo objektin nimeltä Y6 tyyppiä Puhelin. Tätä kutsutaan instantioinniksi.
- Luo objektin nimeltä Y7 tyyppiä Puhelin. Tätä kutsutaan instantioinniksi.
- Käytä luokan Puhelin muuttuja- / jäsenhintaa objektilla Y6. Arvoksi asetetaan 100,0. Y6: n kustannukseksi on nyt asetettu 100,0.
- Käytä luokan Puhelin muuttuja- / jäsenpaikkoja objektilla Y6. Arvoksi on asetettu 2. Y6: n aikaväleiksi on nyt asetettu 2.
- Käytä luokan Puhelin muuttuja- / jäsenhintaa objektilla Y7. Arvoksi asetetaan 200,0. Y7: n kustannukseksi on nyt asetettu 200,0.
- Käytä luokan Puhelin muuttuja- / jäsenpaikkoja objektilla Y7. Arvoksi on asetettu 2. Y7: n aikaväleiksi on nyt asetettu 2.
- Tulosta Y6: n hinta konsolille muun tekstin ohella.
- Tulosta Y7: n hinta konsolille muun tekstin ohella.
- Tulosta Y6: n paikkojen määrä muun tekstin viereen.
- Tulosta Y7: n paikkojen määrä muun tekstin viereen.
- Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
- Päätoiminnon () rungon loppu.
Mikä on yksityinen luokka?
Yksityisiksi merkittyihin luokan jäseniin pääsee vain luokan sisällä määritetyillä toiminnoilla. Luokan ulkopuolella määritelty objekti tai toiminto ei voi käyttää tällaisia jäseniä suoraan. Yksityisen luokan jäsentä voivat käyttää vain jäsen- ja ystävätoiminnot.
Mikä on suojattu luokka?
Luokan jäsenillä, jotka on merkitty suojattuiksi, on etu yksityisiin. Niitä voidaan käyttää niiden määritelmän luokan toimintojen avulla. Lisäksi niihin pääsee johdetuista luokista.
Esimerkki 2:
#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;}
Tuotos:
Tässä on kuvakaappaus koodista:
Koodin selitys:
- Sisällytä iostream-otsikkotiedosto koodiin käyttääksesi sen toimintoja.
- Sisällytä vakio nimitila koodissamme käyttääksesi luokkia sitä kutsumatta.
- Luo luokka nimeltä ClassA.
- Merkitse luotavan luokan jäsen yleisesti saatavana olevalla yleisönmuuttajalla.
- Luo funktio set_a (), joka ottaa yhden kokonaisluvun arvon val.
- Luo funktio nimeltä get_a ().
- Käytä yksityisen pääsyn modifikaattoria merkitäksesi luodun luokan jäsenen yksityisesti käytettävissä olevaksi.
- Ilmoita kokonaisluku muuttuja nimeltä a.
- Luokan loppu.
- Käytä luokan nimeä ja laajuuden tarkkuusoperaattoria päästäksesi funktioon get_a (). Haluamme määritellä, mitä funktio tekee, kun sitä kutsutaan.
- Funktion get_a () pitäisi palauttaa muuttujan a arvo, kun sitä kutsutaan.
- Funktion get_a () määritelmän loppu.
- Käytä luokan nimeä ja alueen tarkkuuden operaattoria päästäksesi funktioon set_a (). Haluamme määritellä, mitä funktio tekee, kun sitä kutsutaan.
- Määritetään muuttujan val arvo muuttujalle a.
- Funktion set_a () määrityksen loppu.
- Kutsu main () -toiminto. Ohjelmalogiikka tulisi lisätä tämän toiminnon runkoon.
- Luo ClassA-esiintymä ja anna sille nimi a.
- Käytä yllä olevaa luokan esiintymää ja funktiota set_a () määrittääksesi arvon 20 muuttujalle a.
- Tulostetaan tekstiä muuttujan a arvon ohella konsolille. Muuttujan a arvo saadaan kutsumalla get_a () -funktio.
- Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
- Funktion rungon pää main ().
Esimerkki 3:
#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;}
Tuotos:
Tässä on kuvakaappaus koodista:
Koodin selitys:
- Sisällytä iostream-otsikkotiedosto koodiin käyttääksesi sen toimintoja.
- Sisällytä vakio nimitila koodissamme käyttääksesi luokkia sitä kutsumatta.
- Luo luokka nimeltä ParentClass.
- Käytä suojattua pääsynmuokkainta merkitäksesi luodun luokan jäsenen suojatuksi.
- Luo kokonaisluku muuttuja nimeltä arvo.
- Luokan loppu.
- Luo uusi luokka nimeltä ChildClass, joka perii ParentClassin.
- Käytä suojattua pääsynmuokkainta merkitäksesi luodun luokan jäsenen pääsyn lapsiluokille.
- Luo funktio nimeltä setId (), joka ottaa yhden kokonaisluvun x.
- Määritetään muuttujan x arvo muuttujan arvoon.
- Funktion setId () määrityksen loppu.
- Luo funktio nimeltä displayValue ().
- Tulosta muuttujan nimeltä arvo arvo konsolille muun tekstin viereen.
- Funktion displayValue () rungon loppu.
- ChildClass-luokan rungon loppu.
- Kutsu main () -toiminto. Ohjelmalogiikka tulisi lisätä tämän toiminnon runkoon.
- Luo ChildClass-ilmentymä ja anna sille nimi c.
- Käytä yllä olevaa luokan esiintymää ja funktiota setId () määrittääksesi arvon 21 muuttujalle x.
- Käytä yllä olevaa luokan esiintymää kutsumaan funktio nimeltä DisplayValue ().
- Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
- Funktion rungon pää main ().
Luokan jäsenen toiminnot
Toiminnot auttavat meitä käsittelemään tietoja. Luokan jäsenfunktiot voidaan määrittää kahdella tavalla:
- Luokan määritelmän sisällä
- Luokan määritelmän ulkopuolella
Jos funktio on määriteltävä luokan määritelmän ulkopuolella, meidän on käytettävä laajuuden resoluutiooperaattoria (: :). Tähän on liitettävä luokkien ja funktioiden nimet.
Esimerkki 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;}
Tuotos:
Tässä on kuvakaappaus koodista:
Koodin selitys:
- Sisällytä iostream-otsikkotiedosto ohjelmaamme käyttääksesi sen toimintoja.
- Sisällytä merkkijonotunnistetiedosto ohjelmaamme käyttääksesi sen toimintoja.
- Sisällytä vakio nimitila koodissamme käyttääksesi luokkia sitä kutsumatta.
- Luo luokka nimeltä Guru99.
- Käytä julkisen pääsyn modifikaattoria merkitsemään luomamme luokan jäsenet julkisesti saataville.
- Luo merkkijonomuuttuja nimeltä tutorial_name.
- Luo kokonaisluku muuttuja nimeltä id.
- Luo funktio nimeltä printname (). Tätä toimintoa ei ole määritelty luokan määritelmässä.
- Luo funktio nimeltä print (). Tämä toiminto on määritelty luokan määritelmässä. Sen runko on lisätty luokan määritelmään.
- Tulosta muuttujan id arvo konsolin muun tekstin viereen. Huomaa, että tämä on lisätty body printid () -funktioon. Se suoritetaan vasta, kun printid () -toiminto kutsutaan.
- Funktion rungon loppu printid ().
- Guru99-luokan rungon pää.
- Funktion printname () määrityksen alku.
- Tulosta muuttujan tutorial_name arvo konsolille muun tekstin rinnalle. Huomaa, että tämä on lisätty bodyname of printname () -toimintoon. Se suoritetaan vain, kun printname () -toiminto kutsutaan.
- Tulostusnimi () -funktion määrityksen loppu.
- Kutsu main () -toiminto. Ohjelmalogiikka tulisi lisätä tämän toiminnon runkoon.
- Luo luokan Guru99 esiintymä ja antamalla sille nimi guru99.
- Määritä C ++ -arvoksi muuttujalle tutorial_name yllä olevan esiintymän avulla.
- Määritä muuttujan ID arvoksi 1001 guru99-ilmentymän avulla.
- Kutsu funktio printname () ilmentymän guru99 avulla.
- Tulosta uusi tyhjä rivi konsoliin soittamalla komento end (end line).
- Kutsu funktio printid () ilmentymään guru99.
- Ohjelman on palautettava arvo, kun se on suoritettu onnistuneesti.
- Päätoiminnon () rungon loppu.
Rakentajat ja tuhoajat
Mikä on rakentajat?
Rakenteet ovat erikoistoimintoja, jotka alustavat objektit. C ++-kääntäjät kutsuvat konstruktorin luodessaan objektia. Rakentajat auttavat osoittamaan arvoja luokan jäsenille. Tietenkin tämä tapahtuu, kun heille on varattu muistitilaa.
Mikä on tuhoajat?
Hävittäjät toisaalta auttavat tuhoamaan luokan esineitä.
Rakentajan nimen on oltava samanlainen kuin luokan nimi. Rakentajilla ei ole palautustyyppiä.
Rakentaja voidaan määritellä luokan rungon sisällä tai ulkopuolella. Jos se on määritelty luokan rungon ulkopuolella, se tulisi määritellä luokan nimellä ja laajuuden resoluutiooperaattorilla (: :).
Esimerkki 3:
#includeusing namespace std;class ClassA {public:ClassA() {cout << "Class constructor called"< Tuotos:
Tässä on kuvakaappaus koodista:
Koodin selitys:
- Sisällytä iostream-otsikkotiedosto koodiin käyttääksesi sen toimintoja.
- Sisällytä vakio nimitila koodissamme käyttääksesi luokkia sitä kutsumatta.
- Luo luokka nimeltä ClassA.
- Merkitse julkisen käyttöoikeuden muokkaajalla jäsen, jonka aiomme luoda julkisesti.
- Luo luokalle konstruktori.
- Konsolille tulostettava teksti, kun konstruktoria kutsutaan. Endl on C ++ -avainsana, mikä tarkoittaa loppuriviä. Se siirtää hiiren kohdistimen seuraavalle riville.
- Luokan rakentajan rungon pää.
- Luo luokalle tuhoaja.
- Konsolille tulostettava teksti, kun tuhoaja kutsutaan. Endl on C ++ -avainsana, mikä tarkoittaa loppuriviä. Se siirtää hiiren kohdistimen seuraavalle riville.
- Tuhoojan rungon pää.
- Luokan loppu.
- Kutsu main () -toiminto. Ohjelmalogiikka tulisi lisätä tämän toiminnon runkoon.
- Luo luokan objekti ja anna sille nimi a. Rakentaja kutsutaan.
- Luo kokonaislukumuuttuja nimeltä p ja määritä sille arvo 1.
- Luo if-lause lohko muuttujalla p.
- Luo luokan objekti ja anna sille nimi b. Hävittäjä kutsutaan.
- If-lauseen rungon loppu.
- Pääfunktion () rungon pää.
Yhteenveto:
- C ++ on olio-suuntautunut.
- Luokat muodostavat C ++: n pääpiirteet, jotka tekevät siitä objektisuuntautuneen.
- C ++ -luokka yhdistää tiedot ja menetelmät tietojen käsittelemiseksi yhdeksi.
- Luokka on objektin piirustus.
- Luokat määrittävät objektin muodon.
- Luokan tiedot ja menetelmät tunnetaan luokan jäseninä.
- Voit käyttää luokan jäseniä käyttämällä luokan esiintymää.
- Luokan luomiseen käytämme luokan avainsanaa.
- Luokan jäsenfunktiot voidaan määrittää luokan sisällä tai ulkopuolella.