Příklady funkcí C++ Const

Priklady Funkci C Const



Tento článek se zaměřuje na klíčové slovo „const“, které se používá s funkcí v C++. Klíčové slovo „const“ je označováno jako konstantní hodnota, kterou nemůžeme během provádění programu měnit. Funkce „const“ v C++ jsou funkce, jejichž datové členy lze v jejich třídě měnit. Funkce „pokračování“ jsou efektivně využívány, protože mohou zabránit neočekávaným úpravám hodnoty objektu.

Příklad 1: Program Const Member funkce v C++

Zde máme jednoduchý program členské funkce const:

#include
použitím jmenný prostor std ;
třída Moje třída {
int na jednom ;
veřejnost :
Moje třída ( int n = 0 ) {
na jednom = n ;
}
int getValue ( ) konst {
vrátit se na jednom ;
}
} ;
int hlavní ( ) {
konst Moje třída c ( 30 ) ;
Moje třída c1 ( 5 ) ;
cout << 'Číslo pomocí objektu c:' << C. getValue ( ) ;
cout << ' \n Číslo pomocí objektu c1 : ' << c1. getValue ( ) ;
vrátit se 0 ;
}

Nejprve definujeme hlavičkový soubor, který umožňuje programové vstupní/výstupní proudy. Poté nastavíme třídu „MyClass“, kde deklarujeme proměnnou „num“ a členské funkce funkce MyClass() a funkce getVal(). Uvnitř funkce MyClass() nastavíme parametr „n“ na hodnotu „0“. Potom je argument „n“ přiřazen k proměnné „num“. Dále zavoláme funkci getVal() s klíčovým slovem „const“, což znamená, že současný stav objektu nelze při volání funkce upravit. Funkce getVal() vrací členskou proměnnou „num“.







Nakonec se dostaneme k funkci main(). Zde definujeme objekty „c“ a „c1“ funkce MyClass() a také těmto objektům předáme hodnoty. Objekt „c“ je nastaven s klíčovým slovem „const“, což znamená, že hodnotu přiřazenou tomuto objektu nelze změnit.



Výstup členské funkce const, která je volána objektem, je zobrazena níže. Tímto způsobem můžeme použít klíčové slovo „const“ s členskou funkcí a objektem:







Příklad 2: Program členské funkce Const mimo třídu v C++

Nyní máme další implementaci, kde je členská funkce const definována mimo definici třídy a nastavuje a získává hodnotu soukromé členské proměnné pomocí členské funkce const.

#include
použitím jmenný prostor std ;

třída Nová třída {
int i ;

veřejnost :
prázdnota set_record ( int ) ;

int get_record ( ) konst ;
} ;

prázdnota Nová třída :: set_record ( int X ) { i = X ; }
int Nová třída :: get_record ( ) konst { vrátit se i ; }

int hlavní ( )
{
NewClass c ;
C. set_record ( 10 ) ;
cout << C. get_record ( ) ;

vrátit se 0 ;
}

Zde nejprve založíme třídu „NewClass“, kde inicializujeme proměnnou „i“, která je soukromá. Poté máme veřejné klíčové slovo, kde jsou definovány členské funkce set_record() a get_record(). Členská funkce set_record() se používá k nastavení hodnoty proměnné „i“ a funkce get_record() se zde používá k vrácení hodnoty proměnné „i“. Všimněte si, že klíčové slovo „const“ používáme s členskou funkcí get_record(), která jej reprezentuje jako členská funkce const, a stav objektu nelze upravit. Poté máme definici funkce set_record() pro nastavení hodnoty proměnné „i“.



Podobně máme definici funkce get_record() pro načtení hodnoty proměnné „i“. Poté nastavíme funkci main(), kde máme deklaraci objektu „c“ třídy „NewClass“. Poté se zavolá „set_record“, nekonstantní členská funkce, která přiřadí hodnotu proměnné „z“. Nyní zavoláme členskou funkci get_record() const, která vypíše hodnotu „i“.

Hodnota soukromé členské proměnné je volána členskou funkcí const a je zobrazena v následující výzvě:

Příklad 3: Program stálé členské funkce definované mimo třídu jako nezávislá funkce

Implementujeme však další případ členské funkce const, kdy je členská funkce s klíčovým slovem „const“ volána mimo třídu jako samostatná funkce.

#include
použitím jmenný prostor std ;
třída Rovnice {
int n1, n2 ;
veřejnost :
prázdnota set_equation ( int X, int a )
{
n1 = X ;
n2 = a ;
}
prázdnota zobrazit_rovnici ( )
{
cout << 'Rovnice je:' << n1 << '+' << n2 << 'b' << endl ;
}
přítel prázdnota je to zábava ( konst Rovnice ) ;
} ;
prázdnota je to zábava ( konst Rovnice obj )
{
cout << 'Rovnice pomocí funkce je: ' << obj. n1 << '+' << obj. n2 << 'b' << endl ;
}
int hlavní ( )
{
Rovnice obj ;
obj. set_equation ( 5 , 8 ) ;
obj. zobrazit_rovnici ( ) ;
je to zábava ( obj ) ;
}

Zde vytvoříme třídu „Equation()“ a poté deklarujeme proměnné „n1“ a „n2“. Zde také přidáme členskou funkci set_Equation() pro nastavení hodnot proměnných „n1“ a „n2“. Funkce show_Equation() zobrazuje rovnici, která je generována pomocí těchto proměnných.

Poté máme deklaraci funkce funIs(), která je definována pomocí klíčového slova „friend“. Toto klíčové slovo „friend“ nám umožňuje přístup k soukromému členu třídy „Equation“. Dále zavoláme přátelskou funkci „funIs()“ mimo třídu a zadáme parametr „obj“ třídy „Equation“ jako const. Nakonec máme funkci main(), kde deklarujeme objekt třídy „Equation“. Poté nastavíme hodnoty proměnných „n1“ a „n2“ pomocí funkce set_Equation(). Proměnné „n1“ a „n2“ se používají k zobrazení jejich hodnot pomocí funkce show_Equation(). Nakonec zavoláme přátelskou funkci „funIs“ třídy „Equation“, abychom zobrazili rovnici.

Rovnice a rovnice používající funkci const friend se zobrazí na výzvě:

Příklad 4: Program členské funkce Const pro aktualizaci hodnoty v C++ (nejhorší případ)

Program demonstruje nejhorší scénář členské funkce const, kde se snažíme upravit hodnotu proměnné nazvané „uvnitř členské funkce const“.

#include
použitím jmenný prostor std ;

třída Data {
int v ;

veřejnost :
prázdnota setValue ( int i ) { v = i ; }
int getValue ( ) konst
{

++ v ;
vrátit se v ;
}

} ;

int hlavní ( )
{
Údaje d ;
d. setValue ( dvacet ) ;
cout << endl << d. getValue ( ) ;

vrátit se 0 ;
}

Zde nejprve zkonstruujeme třídu „Data“ a v rámci třídy deklarujeme proměnnou „v“. Poté nastavíme klíčové slovo „public“ a poté deklarujeme členské funkce třídy „setValue()“, která představuje konstruktor třídy, a getValue(), která označuje členskou funkci getter třídy. Funkce setValue() bere proměnnou „i“ jako parametr. Tato proměnná „i“ je přiřazena členské proměnné „v“.

Poté máme definici funkce getValue(), kde získáme hodnotu proměnné „v“. Protože funkce getValue() je deklarována pomocí klíčového slova „const“, což znamená, že hodnotu proměnné „v“ nelze v žádném případě aktualizovat. Záměrně se však snažíme zvýšit proměnnou „v“, abychom změnili její hodnotu. Když program dosáhne této fáze, dojde k chybě. Nakonec máme volání funkce main(), kde definujeme objekt „d“ třídy „Data“ a tomuto objektu „d“ nastavíme hodnotu „20“. Poté zavoláme funkci getValue(), abychom získali hodnotu „d“ objektu.

Výzva generuje výsledky předchozí implementace, kde zobrazuje chybu na „++v“, protože nemáme povoleno měnit hodnotu objektů členské funkce const:

Závěr

Na závěr se ponoříme do funkce const C++, která se používá k zamezení náhodným změnám v hodnotě programu. Členové funkce const v C++ jsou funkce pouze pro čtení, jejichž úprava objektů, na kterých je volána, není povolena. Také jsme implementovali různé scénáře funkce const, abychom demonstrovali její funkčnost v C++.