Esimerkkejä C++ Const -funktiosta

Esimerkkeja C Const Funktiosta



Tämä artikkeli keskittyy 'const'-avainsanaan, jota käytetään funktion kanssa C++:ssa. 'const'-avainsanaa kutsutaan vakioarvoksi, jota emme voi muuttaa ohjelman suorittamisen aikana. C++:n “const”-funktiot ovat niitä toimintoja, joiden datajäseniä on rajoitettu muutettaviksi luokassaan. 'Cont'-funktioita käytetään tehokkaasti, koska ne voivat välttää odottamattomat muutokset objektin arvoon.

Esimerkki 1: Const-jäsenfunktion ohjelma C++:ssa

Tässä meillä on yksinkertainen ohjelma const-jäsenfunktiolle:

#include
käyttämällä nimiavaruus std ;
luokkaa Luokkani {
int yhdellä ;
julkinen :
Luokkani ( int n = 0 ) {
yhdellä = n ;
}
int getValue ( ) konst {
palata yhdellä ;
}
} ;
int pää ( ) {
konst MyClass c ( 30 ) ;
MyClass c1 ( 5 ) ;
cout << 'Numero käyttäen objektia c :' << c. getValue ( ) ;
cout << ' \n Numero käyttämällä objektia c1 : ' << c1. getValue ( ) ;
palata 0 ;
}

Aluksi määritämme otsikkotiedoston, joka mahdollistaa ohjelman syöttö-/tulostusvirrat. Sitten asetamme 'MyClass'-luokan, jossa ilmoitamme 'num'-muuttujan sekä MyClass()-funktion ja getVal()-funktion jäsenfunktiot. MyClass()-funktion sisällä asetamme 'n'-parametrin arvolla '0'. Sitten 'n'-argumentti määrätään 'num'-muuttujalle. Seuraavaksi kutsumme getVal()-funktiota 'const'-avainsanalla, mikä osoittaa, että objektin nykyistä tilaa ei voida muuttaa funktiokutsussa. GetVal()-funktio palauttaa 'num' jäsenmuuttujan.







Lopuksi päästään main()-funktioon. Tässä määritellään MyClass()-funktion 'c' ja 'c1' objektit ja välitetään myös arvot näille objekteille. 'c'-objekti asetetaan 'const'-avainsanalla, mikä osoittaa, että tälle objektille määritettyä arvoa ei voi muuttaa.



Objektin kutsuman const-jäsenfunktion tulos esitetään seuraavassa. Tällä tavalla voimme käyttää 'const'-avainsanaa jäsenfunktion ja objektin kanssa:







Esimerkki 2: Luokan ulkopuolella olevan Const-jäsenfunktion ohjelma C++:ssa

Nyt meillä on toinen toteutus, jossa const-jäsenfunktio määritellään luokkamääritelmän ulkopuolella ja asettaa ja noutaa yksityisen jäsenen muuttujan arvon käyttämällä const-jäsenfunktiota.

#include
käyttämällä nimiavaruus std ;

luokkaa Uusi luokka {
int i ;

julkinen :
mitätön aseta_tietue ( int ) ;

int hanki_tietue ( ) konst ;
} ;

mitätön Uusi luokka :: aseta_tietue ( int x ) { i = x ; }
int Uusi luokka :: hanki_tietue ( ) konst { palata i ; }

int pää ( )
{
Uusi luokka c ;
c. aseta_tietue ( 10 ) ;
cout << c. hanki_tietue ( ) ;

palata 0 ;
}

Täällä perustamme ensin luokan 'NewClass', jossa alustamme 'i'-muuttujan, joka pidetään yksityisenä. Sen jälkeen meillä on julkinen avainsana, jossa määritellään jäsenfunktiot set_record() ja get_record(). Jäsenfunktiota set_record() käytetään 'i'-muuttujan arvon asettamiseen ja get_record()-funktiota käytetään tässä palauttamaan 'i'-muuttujan arvo. Huomaa, että käytämme 'const'-avainsanaa get_record() -jäsenfunktion kanssa, joka edustaa sitä const-jäsenfunktiona, eikä objektin tilaa voi muuttaa. Sen jälkeen meillä on set_record()-funktion määritelmä 'i'-muuttujan arvon asettamiseksi.



Samoin meillä on get_record()-funktion määritelmä 'i'-muuttujan arvon hakemiseksi. Sitten asetamme main()-funktion, jossa meillä on ilmoitus 'NewClass'-luokan 'c'-objektista. Sitten 'set_record', ei-vakiojäsenfunktio, kutsutaan antamaan arvo 'z'-muuttujalle. Jatkossa kutsumme get_record() const -jäsenfunktiota tulostamaan 'i':n arvon.

Const-jäsenfunktio kutsuu yksityisen jäsenmuuttujan arvon, ja se näytetään seuraavassa kehotteessa:

Esimerkki 3: Luokan ulkopuolella itsenäiseksi funktioksi määritellyn vakiojäsenfunktion ohjelma

Toteutamme kuitenkin toisen tapauksen const-jäsenfunktiosta, jossa jäsenfunktiota, jolla on 'const'-avainsana, kutsutaan luokan ulkopuolelle itsenäisenä funktiona.

#include
käyttämällä nimiavaruus std ;
luokkaa Yhtälö {
int n1, n2 ;
julkinen :
mitätön set_equation ( int x, int ja )
{
n1 = x ;
n2 = ja ;
}
mitätön näytä_yhtälö ( )
{
cout << 'Yhtälö on:' << n1 << '+' << n2 << 'b' << endl ;
}
ystävä mitätön se on hauskaa ( konst Yhtälö ) ;
} ;
mitätön se on hauskaa ( konst Yhtälö obj )
{
cout << 'Yhtälö käyttää funktiota on: ' << obj. n1 << '+' << obj. n2 << 'b' << endl ;
}
int pää ( )
{
Yhtälö obj ;
obj. set_equation ( 5 , 8 ) ;
obj. näytä_yhtälö ( ) ;
se on hauskaa ( obj ) ;
}

Täällä luomme 'Equation()'-luokan ja määritämme sitten muuttujat 'n1' ja 'n2'. Tässä lisäämme myös set_Equation() -jäsenfunktion 'n1'- ja 'n2'-muuttujien arvojen asettamiseksi. Show_Equation()-funktio näyttää yhtälön, joka on luotu näiden muuttujien avulla.

Tämän jälkeen meillä on funIs()-funktion ilmoitus, joka määritellään 'ystävä'-avainsanalla. Tämän 'ystävä'-avainsanan avulla voimme käyttää 'Yhtälö'-luokan yksityistä jäsentä. Seuraavaksi kutsumme ystäväfunktiota 'funIs()' luokan ulkopuolella ja syötämme 'Equation'-luokan parametrin 'obj' muodossa const. Lopulta meillä on main()-funktio, jossa ilmoitamme 'Yhtälö'-luokan objektin. Sitten asetamme muuttujien 'n1' ja 'n2' arvot käyttämällä set_Equation()-funktiota. 'n1' ja 'n2' muuttujia käytetään näyttämään niiden arvot käyttämällä show_Equation()-funktiota. Lopuksi kutsumme Yhtälö-luokan ystäväfunktiota 'funIs' yhtälön näyttämiseksi.

Yhtälö ja const friend -funktiota käyttävä yhtälö näytetään kehotteessa:

Esimerkki 4: Const-jäsenfunktion ohjelma arvon päivittämiseksi C++:ssa (pahin tapaus)

Ohjelma esittelee const-jäsenfunktion pahimman skenaarion, jossa yritetään muokata muuttujan arvoa nimeltä 'const-jäsenfunktion sisällä'.

#include
käyttämällä nimiavaruus std ;

luokkaa Data {
int sisään ;

julkinen :
mitätön aseta arvo ( int i ) { sisään = i ; }
int getValue ( ) konst
{

++ sisään ;
palata sisään ;
}

} ;

int pää ( )
{
Tiedot d ;
d. aseta arvo ( kaksikymmentä ) ;
cout << endl << d. getValue ( ) ;

palata 0 ;
}

Täällä rakennamme ensin 'Data'-luokan ja ilmoittamme 'v'-muuttujan luokassa. Tämän jälkeen asetamme 'public'-avainsanan ja määritämme sitten luokan jäsenfunktiot 'setValue()', joka edustaa luokan rakentajaa ja getValue(), joka ilmaisee luokan getterijäsenfunktion. SetValue()-funktio ottaa 'i'-muuttujan parametriksi. Tämä 'i'-muuttuja on liitetty 'v'-jäsenmuuttujaan.

Tämän jälkeen meillä on getValue()-funktion määritelmä, josta noudetaan 'v'-muuttujan arvo. Koska getValue()-funktio on ilmoitettu 'const'-avainsanalla, mikä tarkoittaa, että 'v'-muuttujan arvoa ei voida päivittää missään tapauksessa. Yritämme kuitenkin tarkoituksella kasvattaa 'v'-muuttujaa muuttaaksemme sen arvoa. Kun ohjelma saavuttaa tämän vaiheen, annetaan virheilmoitus. Lopuksi meillä on main()-funktiokutsu, jossa määritämme 'Data'-luokan 'd'-objektin ja asetamme arvon '20' tälle 'd'-objektille. Tämän jälkeen kutsumme getValue()-funktiota saadaksemme objektin 'd'-arvon.

Kehote luo edellisen toteutuksen tulokset, jossa se antaa virheen '++v', koska emme saa muuttaa const-jäsenfunktioobjektien arvoa:

Johtopäätös

Lopuksi sukeltamme C++:n const-funktioon, jota käytetään estämään vahingossa tapahtuvat muutokset ohjelman arvossa. C++:n const-jäsenfunktiot ovat vain luku -funktioita, joiden objektien muuttaminen, joihin sitä kutsutaan, ei ole sallittua. Totesimme myös erilaisia ​​const-funktion skenaarioita osoittaaksemme sen toimivuuden C++:ssa.