Eksempler på C++ Const-funktioner

Eksempler Pa C Const Funktioner



Denne artikel fokuserer på søgeordet 'const', der bruges sammen med funktionen i C++. Nøgleordet 'const' omtales som den konstante værdi, som vi ikke kan ændre under afviklingen af ​​programmet. 'const'-funktionerne i C++ er de funktioner, hvis datamedlemmer er begrænset til at blive ændret i deres klasse. 'Cont'-funktionerne bruges effektivt, da de kan undgå uventede ændringer af objektets værdi.

Eksempel 1: Program for en Const Member Funktion i C++

Her har vi et simpelt program for const member-funktionen:

#include
ved brug af navneområde std ;
klasse Min klasse {
int på en ;
offentlig :
Min klasse ( int n = 0 ) {
på en = n ;
}
int getValue ( ) konst {
Vend tilbage på en ;
}
} ;
int vigtigste ( ) {
konst MyClass c ( 30 ) ;
MyClass c1 ( 5 ) ;
cout << 'Nummer ved hjælp af objekt c : ' << c. fåVærdi ( ) ;
cout << ' \n Nummer ved hjælp af objekt c1 : ' << c1. fåVærdi ( ) ;
Vend tilbage 0 ;
}

Indledningsvis definerer vi header-filen, som aktiverer programmets input/output-strømme. Derefter indstiller vi 'MyClass'-klassen, hvor vi erklærer en 'num'-variabel og medlemsfunktionerne af MyClass()-funktionen og getVal()-funktionen. Inde i MyClass()-funktionen indstiller vi parameteren 'n' med værdien '0'. Derefter tildeles 'n'-argumentet til 'num'-variablen. Dernæst kalder vi getVal()-funktionen med nøgleordet 'const', hvilket indikerer, at objektets nuværende tilstand ikke kan ændres på et funktionskald. GetVal()-funktionen returnerer medlemsvariablen 'num'.







Til sidst når vi ud til main()-funktionen. Her definerer vi 'c'- og 'c1'-objekterne i MyClass()-funktionen og sender også værdierne til disse objekter. 'c'-objektet er sat med nøgleordet 'const', hvilket indikerer, at den værdi, der er tildelt dette objekt, ikke kan ændres.



Outputtet af const member-funktionen, der kaldes af objektet, vises i det følgende. På denne måde kan vi bruge nøgleordet 'const' med medlemsfunktionen og objektet:







Eksempel 2: Program for en Const Member-funktion uden for klassen i C++

Nu har vi en anden implementering, hvor const member-funktionen er defineret uden for en klassedefinition og indstiller og henter en privat medlemsvariabelværdi ved hjælp af en const member-funktion.

#include
ved brug af navneområde std ;

klasse Ny klasse {
int jeg ;

offentlig :
ugyldig sæt_rekord ( int ) ;

int get_record ( ) konst ;
} ;

ugyldig Ny klasse :: sæt_rekord ( int x ) { jeg = x ; }
int Ny klasse :: get_record ( ) konst { Vend tilbage jeg ; }

int vigtigste ( )
{
Ny klasse c ;
c. sæt_rekord ( 10 ) ;
cout << c. get_record ( ) ;

Vend tilbage 0 ;
}

Her etablerer vi først en klasse, 'NewClass', hvor vi initialiserer 'i'-variablen, som holdes privat. Derefter har vi et offentligt søgeord, hvor medlemsfunktionerne set_record() og get_record() er defineret. Set_record()-medlemsfunktionen bruges til at indstille værdien af ​​'i'-variablen, og get_record()-funktionen bruges her til at returnere værdien af ​​'i'-variablen. Bemærk, at vi bruger nøgleordet 'const' med medlemsfunktionen get_record(), som repræsenterer det som en const-medlemsfunktion, og objekttilstanden kan ikke ændres. Derefter har vi en set_record() funktionsdefinition til at indstille 'i' variabelværdien.



På samme måde har vi funktionsdefinitionen get_record() til at hente variabelværdien 'i'. Derefter indstiller vi main()-funktionen, hvor vi har en erklæring af 'c'-objektet i 'NewClass'-klassen. Derefter kaldes 'set_record', en ikke-konst-medlemsfunktion, for at tildele en værdi til 'z'-variablen. Når vi går videre, kalder vi get_record() const member-funktionen for at udskrive værdien af ​​'i'.

Værdien af ​​den private medlemsvariabel kaldes af const member-funktionen og vises i følgende prompt:

Eksempel 3: Program for en Const Member funktion defineret uden for klassen som en uafhængig funktion

Vi implementerer dog et andet tilfælde af const-medlemsfunktionen, hvor medlemsfunktionen med nøgleordet 'const' kaldes uden for klassen som en selvstændig funktion.

#include
ved brug af navneområde std ;
klasse Ligning {
int n1,n2 ;
offentlig :
ugyldig sæt_ligning ( int x, int og )
{
n1 = x ;
n2 = og ;
}
ugyldig vis_ligning ( )
{
cout << 'Ligningen er:' << n1 << '+' << n2 << 'b' << endl ;
}
ven ugyldig det er sjovt ( konst Ligning ) ;
} ;
ugyldig det er sjovt ( konst Ligning obj )
{
cout << 'Den ligningsbrugende funktion er:' << obj. n1 << '+' << obj. n2 << 'b' << endl ;
}
int vigtigste ( )
{
Ligning obj ;
obj. sæt_ligning ( 5 , 8 ) ;
obj. vis_ligning ( ) ;
det er sjovt ( obj ) ;
}

Her opretter vi 'Equation()'-klassen og erklærer derefter 'n1' og 'n2' variablerne. Her tilføjer vi også medlemfunktionen set_Equation() for at indstille værdierne af 'n1' og 'n2' variablerne. Funktionen show_Equation() viser den ligning, der genereres ved hjælp af disse variable.

Efter dette har vi en funktionsdeklaration af funIs() som defineres ved hjælp af nøgleordet 'ven'. Dette 'ven'-nøgleord giver os adgang til det private medlem af klassen 'Ligning'. Dernæst kalder vi 'funIs()'-vennfunktionen uden for klassen og indtaster 'obj'-parameteren for 'Equation'-klassen som const. I sidste ende har vi en main() funktion, hvor vi erklærer objektet for klassen 'Ligning'. Derefter indstiller vi værdierne for 'n1' og 'n2' variablerne ved hjælp af set_Equation() funktionen. Variablerne 'n1' og 'n2' bruges til at vise deres værdier ved hjælp af funktionen show_Equation(). Til sidst kalder vi 'funIs' vennefunktionen i 'Equation'-klassen for at vise ligningen.

Ligningen og ligningen ved hjælp af const friend-funktionen vises på prompten:

Eksempel 4: Program for en Const-medlemsfunktion til at opdatere værdien i C++ (Worst Case)

Programmet demonstrerer det værste scenarie for const member-funktionen, hvor vi forsøger at ændre værdien af ​​variablen kaldet 'inde i const member-funktionen'.

#include
ved brug af navneområde std ;

klasse Data {
int i ;

offentlig :
ugyldig sætVærdi ( int jeg ) { i = jeg ; }
int fåVærdi ( ) konst
{

++ i ;
Vend tilbage i ;
}

} ;

int vigtigste ( )
{
Data d ;
d. sætVærdi ( tyve ) ;
cout << endl << d. fåVærdi ( ) ;

Vend tilbage 0 ;
}

Her konstruerer vi først 'Data'-klassen og erklærer 'v'-variablen i klassen. Efter dette sætter vi nøgleordet 'public' og erklærer derefter klassemedlemsfunktionerne for 'setValue()', som repræsenterer klassens konstruktør og getValue(), som angiver klassens getter-medlemsfunktion. Funktionen setValue() tager 'i'-variablen som en parameter. Denne 'i'-variabel er tildelt til 'v'-medlemsvariablen.

Efter dette har vi funktionsdefinitionen getValue(), hvor vi henter værdien af ​​'v'-variablen. Da funktionen getValue() er erklæret med nøgleordet 'const', hvilket repræsenterer, at værdien af ​​variablen 'v' under alle omstændigheder ikke kan opdateres. Vi forsøger dog med vilje at øge 'v'-variablen for at ændre dens værdi. Når programmet når dette stadie, vises en fejl. Til sidst har vi funktionskaldet main(), hvor vi definerer 'd'-objektet i 'Data'-klassen og indstiller værdien af ​​'20' for dette 'd'-objekt. Derefter kalder vi funktionen getValue() for at få objektets 'd'-værdi.

Prompten genererer resultaterne af den tidligere implementering, hvor den giver en fejl på '++v', fordi vi ikke har tilladelse til at ændre værdien af ​​const-medlemsfunktionsobjekterne:

Konklusion

Afslutningsvis dykker vi ned i const-funktionen af ​​C++, som bruges til at undgå utilsigtede ændringer i programmets værdi. Const-medlemsfunktionerne i C++ er skrivebeskyttede funktioner, hvis ændring af de objekter, som den kaldes på, ikke er tilladt. Vi implementerede også forskellige scenarier af const-funktionen for at demonstrere dens funktionalitet i C++.