C++ Const-funksjonseksempler

C Const Funksjonseksempler



Denne artikkelen fokuserer på nøkkelordet 'const' som brukes med funksjonen i C++. Nøkkelordet 'const' blir referert til som den konstante verdien som vi ikke kan endre under kjøringen av programmet. 'const'-funksjonene i C++ er de funksjonene hvis datamedlemmer er begrenset til å endres i deres klasse. 'Forts'-funksjonene brukes effektivt da de kan unngå uventede endringer i objektets verdi.

Eksempel 1: Program for en Const Member-funksjon i C++

Her har vi et enkelt program for const member-funksjonen:

#include
ved hjelp av navneområde std ;
klasse Klassen min {
int på en ;
offentlig :
Klassen min ( int n = 0 ) {
på en = n ;
}
int getValue ( ) konst {
komme tilbake på en ;
}
} ;
int hoved- ( ) {
konst MyClass c ( 30 ) ;
MyClass c1 ( 5 ) ;
cout << 'Nummer som bruker objekt c : ' << c. getValue ( ) ;
cout << ' \n Nummer ved hjelp av objekt c1 : ' << c1. getValue ( ) ;
komme tilbake 0 ;
}

Til å begynne med definerer vi header-filen som aktiverer programmets input/output-strømmer. Deretter setter vi 'MyClass'-klassen der vi erklærer en 'num'-variabel og medlemsfunksjonene til MyClass()-funksjonen og getVal()-funksjonen. Inne i MyClass()-funksjonen setter vi 'n'-parameteren med verdien '0'. Deretter tildeles 'n'-argumentet til 'num'-variabelen. Deretter kaller vi getVal()-funksjonen med nøkkelordet 'const', noe som indikerer at objektets nåværende tilstand ikke kan endres på et funksjonskall. GetVal()-funksjonen returnerer medlemsvariabelen 'num'.







Til slutt når vi ut til hoved()-funksjonen. Her definerer vi 'c' og 'c1'-objektene til MyClass()-funksjonen og sender også verdiene til disse objektene. 'c'-objektet er satt med nøkkelordet 'const', som indikerer at verdien som er tilordnet dette objektet ikke kan endres.



Utdataene til const member-funksjonen som kalles opp av objektet, vises i det følgende. På denne måten kan vi bruke nøkkelordet 'const' med medlemsfunksjonen og objektet:







Eksempel 2: Program for en Const Member-funksjon utenfor klassen i C++

Nå har vi en annen implementering der const member-funksjonen er definert utenfor en klassedefinisjon og setter og henter en privat medlemsvariabelverdi ved å bruke en const member-funksjon.

#include
ved hjelp av navneområde std ;

klasse NewClass {
int Jeg ;

offentlig :
tomrom sett_rekord ( int ) ;

int få_rekord ( ) konst ;
} ;

tomrom NewClass :: sett_rekord ( int x ) { Jeg = x ; }
int NewClass :: få_rekord ( ) konst { komme tilbake Jeg ; }

int hoved- ( )
{
NewClass c ;
c. sett_rekord ( 10 ) ;
cout << c. få_rekord ( ) ;

komme tilbake 0 ;
}

Her etablerer vi først en klasse, 'NewClass', hvor vi initialiserer 'i'-variabelen som holdes privat. Etter det har vi et offentlig nøkkelord der medlemfunksjonene set_record() og get_record() er definert. Set_record()-medlemsfunksjonen brukes til å angi verdien til 'i'-variabelen og get_record()-funksjonen brukes her for å returnere verdien til 'i'-variabelen. Legg merke til at vi bruker nøkkelordet 'const' med medlemsfunksjonen get_record() som representerer den som en const-medlemsfunksjon, og objekttilstanden kan ikke endres. Etter det har vi en set_record()-funksjonsdefinisjon for å angi 'i'-variabelverdien.



På samme måte har vi funksjonsdefinisjonen get_record() for å hente «i»-variabelverdien. Deretter setter vi main()-funksjonen der vi har en erklæring av 'c'-objektet til 'NewClass'-klassen. Deretter kalles 'set_record', en ikke-konst-medlemsfunksjon, for å tilordne en verdi til 'z'-variabelen. Går vi videre, kaller vi get_record() const member-funksjonen for å skrive ut verdien av 'i'.

Verdien til den private medlemsvariabelen kalles opp av const member-funksjonen og vises i følgende ledetekst:

Eksempel 3: Program for en Const Member-funksjon definert utenfor klassen som en uavhengig funksjon

Imidlertid implementerer vi et annet tilfelle av const-medlemsfunksjonen der medlemsfunksjonen med nøkkelordet 'const' kalles utenfor klassen som en frittstående funksjon.

#include
ved hjelp av navneområde std ;
klasse Ligning {
int n1,n2 ;
offentlig :
tomrom sett_ligning ( int x, int og )
{
n1 = x ;
n2 = og ;
}
tomrom show_equation ( )
{
cout << 'Ligningen er:' << n1 << '+' << n2 << 'b' << endl ;
}
venn tomrom det er gøy ( konst Ligning ) ;
} ;
tomrom det er gøy ( konst Ligning obj )
{
cout << 'Ligningen som bruker funksjonen er: ' << obj. n1 << '+' << obj. n2 << 'b' << endl ;
}
int hoved- ( )
{
Ligning obj ;
obj. sett_ligning ( 5 , 8 ) ;
obj. show_equation ( ) ;
det er gøy ( obj ) ;
}

Her lager vi 'Equation()'-klassen og erklærer deretter 'n1' og 'n2' variablene. Her legger vi også til set_Equation()-medlemsfunksjonen for å angi verdiene til 'n1' og 'n2' variablene. Funksjonen show_Equation() viser ligningen som genereres ved hjelp av disse variablene.

Etter dette har vi en funksjonserklæring av funIs() som er definert ved hjelp av nøkkelordet 'venn'. Dette «venn»-nøkkelordet lar oss få tilgang til det private medlemmet av «Equation»-klassen. Deretter kaller vi «funIs()»-vennfunksjonen utenfor klassen og legger inn «obj»-parameteren til «Equation»-klassen som const. Til slutt har vi en main()-funksjon der vi erklærer objektet til klassen 'Equation'. Deretter setter vi verdiene til 'n1' og 'n2' variablene ved å bruke funksjonen set_Equation(). Variablene 'n1' og 'n2' brukes til å vise verdiene deres ved hjelp av funksjonen show_Equation(). Til slutt kaller vi «funIs»-vennfunksjonen til «Equation»-klassen for å vise ligningen.

Ligningen og ligningen som bruker const friend-funksjonen vises på ledeteksten:

Eksempel 4: Program for en Const-medlemsfunksjon for å oppdatere verdien i C++ (verste tilfelle)

Programmet demonstrerer det verste scenariet for const member-funksjonen der vi prøver å endre verdien av variabelen kalt 'inne i const member-funksjonen'.

#include
ved hjelp av navneområde std ;

klasse Data {
int i ;

offentlig :
tomrom settverdi ( int Jeg ) { i = Jeg ; }
int getValue ( ) konst
{

++ i ;
komme tilbake i ;
}

} ;

int hoved- ( )
{
Data d ;
d. settverdi ( tjue ) ;
cout << endl << d. getValue ( ) ;

komme tilbake 0 ;
}

Her konstruerer vi først 'Data'-klassen og erklærer 'v'-variabelen i klassen. Etter dette setter vi nøkkelordet 'public' og erklærer deretter klassemedlemsfunksjonene til 'setValue()' som representerer konstruktøren av klassen og getValue() som indikerer getter-medlemsfunksjonen til klassen. SetValue()-funksjonen tar 'i'-variabelen som en parameter. Denne 'i'-variabelen er tilordnet til 'v'-medlemsvariabelen.

Etter dette har vi funksjonsdefinisjonen getValue() hvor vi henter verdien av variabelen 'v'. Siden getValue()-funksjonen er deklarert med nøkkelordet 'const', som representerer at verdien til variabelen 'v' ikke kan oppdateres i alle fall. Vi prøver imidlertid med vilje å øke «v»-variabelen for å endre verdien. Når programmet når dette stadiet, vises en feil. Til slutt har vi main()-funksjonskallet der vi definerer 'd'-objektet til 'Data'-klassen og setter verdien på '20' for dette 'd'-objektet. Etter det kaller vi getValue()-funksjonen for å få objektets 'd'-verdi.

Spørringen genererer resultatene fra forrige implementering der den gir en feil på '++v' fordi vi ikke har lov til å endre verdien av const-medlemsfunksjonsobjektene:

Konklusjon

Avslutningsvis dykker vi ned i const-funksjonen til C++ som brukes for å unngå tilfeldige endringer i programmets verdi. Const-medlemsfunksjonene i C++ er skrivebeskyttede funksjoner hvis modifikasjon av objektene den kalles på ikke er tillatt. Vi implementerte også ulike scenarier for const-funksjonen for å demonstrere funksjonaliteten i C++.