Примери Ц++ Цонст функције

Primeri C Const Funkcije



Овај чланак се фокусира на кључну реч „цонст“ која се користи са функцијом у Ц++. Кључна реч „цонст“ се назива константном вредношћу коју не можемо да мењамо током извршавања програма. Функције „цонст“ у Ц++ су оне функције чији чланови података могу бити ограничени на промену у њиховој класи. Функције „цонт“ се ефикасно користе јер могу да избегну неочекиване модификације вредности објекта.

Пример 1: Програм функције Цонст члана у Ц++

Овде имамо једноставан програм функције члана цонст:

#инцлуде<иостреам>
Користећи именског простора стд ;
класа Мој разред {
инт на једном ;
јавности :
Мој разред ( инт н = 0 ) {
на једном = н ;
}
инт гетВалуе ( ) конст {
повратак на једном ;
}
} ;
инт главни ( ) {
конст МиЦласс ц ( 30 ) ;
МиЦласс ц1 ( 5 ) ;
цоут << 'Број који користи објекат ц : ' << ц. гетВалуе ( ) ;
цоут << ' Број који користи објекат ц1: ' << ц1. гетВалуе ( ) ;
повратак 0 ;
}

У почетку дефинишемо датотеку заглавља која омогућава улазне/излазне токове програма. Затим постављамо класу „МиЦласс“ у којој декларишемо променљиву „нум“ и функције чланова функције МиЦласс() и функције гетВал(). Унутар функције МиЦласс() постављамо параметар „н“ са вредношћу „0“. Затим се аргумент „н” додељује променљивој „нум”. Затим позивамо функцију гетВал() са кључном речи „цонст“, што указује на то да тренутно стање објекта не може бити измењено позивом функције. Функција гетВал() враћа променљиву члана „нум”.







Коначно, долазимо до функције маин(). Овде дефинишемо објекте „ц“ и „ц1“ функције МиЦласс() и такође прослеђујемо вредности овим објектима. Објекат 'ц' је постављен кључном речи 'цонст', што указује да вредност која је додељена овом објекту не може да се мења.



Излаз функције члана цонст коју позива објекат приказан је у наставку. На овај начин можемо користити кључну реч „цонст“ са функцијом члана и објектом:







Пример 2: Програм функције члана Цонст изван класе у Ц++

Сада имамо још једну имплементацију у којој је функција члана цонст дефинисана изван дефиниције класе и поставља и преузима вредност приватне променљиве члана користећи функцију члана цонст.

#инцлуде <иостреам>
Користећи именског простора стд ;

класа НевЦласс {
инт и ;

јавности :
празнина сет_рецорд ( инт ) ;

инт гет_рецорд ( ) конст ;
} ;

празнина НевЦласс :: сет_рецорд ( инт Икс ) { и = Икс ; }
инт НевЦласс :: гет_рецорд ( ) конст { повратак и ; }

инт главни ( )
{
НевЦласс ц ;
ц. сет_рецорд ( 10 ) ;
цоут << ц. гет_рецорд ( ) ;

повратак 0 ;
}

Овде прво успостављамо класу, „НевЦласс“, где иницијализујемо променљиву „и“ која се чува приватном. Након тога, имамо јавну кључну реч где су дефинисане функције члана сет_рецорд() и гет_рецорд(). Функција члана сет_рецорд() се користи за постављање вредности променљиве „и“, а функција гет_рецорд() се овде користи за враћање вредности променљиве „и“. Имајте на уму да користимо кључну реч “цонст” са функцијом члана гет_рецорд() која је представља као функцију члана цонст, а стање објекта се не може мењати. Након тога, имамо дефиницију функције сет_рецорд() за постављање вредности променљиве „и“.



Слично томе, имамо дефиницију функције гет_рецорд() за преузимање вредности променљиве „и“. Затим постављамо функцију маин() где имамо декларацију објекта „ц“ класе „НевЦласс“. Затим се позива функција „сет_рецорд“, неконстантна функција члана да додели вредност променљивој „з“. Настављамо даље, позивамо гет_рецорд() функцију члана конст да одштампамо вредност „и“.

Вредност променљиве приватног члана позива функција члана цонст и приказује се у следећем упиту:

Пример 3: Програм функције Цонст члана дефинисане изван класе као независна функција

Међутим, имплементирамо још један случај функције члана цонст где се функција члана са кључном речи „цонст“ позива ван класе као самостална функција.

#инцлуде<битс/стдц++.х>
Користећи именског простора стд ;
класа Једначина {
инт н1,н2 ;
јавности :
празнина скуп_једначина ( инт Икс, инт и )
{
н1 = Икс ;
н2 = и ;
}
празнина схов_екуатион ( )
{
цоут << 'Једначина је: ' << н1 << '+' << н2 << 'б' << ендл ;
}
пријатељу празнина то је забавно ( конст Једначина ) ;
} ;
празнина то је забавно ( конст Једначина обј )
{
цоут << 'Функција која користи једначина је: ' << обј. н1 << '+' << обј. н2 << 'б' << ендл ;
}
инт главни ( )
{
Једначина обј ;
обј. скуп_једначина ( 5 , 8 ) ;
обј. схов_екуатион ( ) ;
то је забавно ( обј ) ;
}

Овде креирамо класу „Екуатион()“, а затим декларишемо променљиве „н1“ и „н2“. Овде такође додајемо функцију члана сет_Екуатион() да поставимо вредности променљивих „н1“ и „н2“. Функција схов_Екуатион() показује једначину која се генерише коришћењем ових променљивих.

После овога, имамо декларацију функције фунИс() која је дефинисана помоћу кључне речи „пријатељ“. Ова кључна реч „пријатељ“ нам омогућава да приступимо приватном члану класе „Екуатион“. Затим позивамо функцију пријатеља „фунИс()“ ван класе и уносимо параметар „обј“ класе „Екуатион“ као конст. На крају, имамо функцију маин() где декларишемо објекат класе „Екуатион“. Затим постављамо вредности променљивих „н1“ и „н2“ користећи функцију сет_Екуатион(). Променљиве „н1“ и „н2“ се користе за приказ њихових вредности помоћу функције схов_Екуатион(). На крају, ми зовемо функцију пријатеља „фунИс“ класе „Екуатион“ да бисмо приказали једначину.

Једначина и једначина која користи функцију цонст фриенд су приказани на упиту:

Пример 4: Програм функције члана Цонст за ажурирање вредности у Ц++ (најгори случај)

Програм демонстрира најгори сценарио функције члана цонст где покушавамо да изменимо вредност променљиве која се зове „унутар функције члана цонст“.

#инцлуде <иостреам>
Користећи именског простора стд ;

класа Подаци {
инт ин ;

јавности :
празнина подешена вредност ( инт и ) { ин = и ; }
инт гетВалуе ( ) конст
{

++ ин ;
повратак ин ;
}

} ;

инт главни ( )
{
Подаци д ;
д. подешена вредност ( двадесет ) ;
цоут << ендл << д. гетВалуе ( ) ;

повратак 0 ;
}

Овде прво конструишемо класу „Подаци“ и декларишемо променљиву „в“ унутар класе. Након овога, постављамо кључну реч „публиц“ и затим декларишемо функције члана класе „сетВалуе()“ која представља конструктор класе и гетВалуе() која указује на функцију члана геттер класе. Функција сетВалуе() узима променљиву „и“ као параметар. Ова променљива „и” је додељена променљивој члана „в”.

После овога, имамо дефиницију функције гетВалуе() где преузимамо вредност променљиве „в“. Пошто је функција гетВалуе() декларисана кључном речи „цонст“, што представља да се вредност променљиве „в“ ни у ком случају не може ажурирати. Међутим, намерно покушавамо да повећамо променљиву „в“ да променимо њену вредност. Када програм достигне ову фазу, јавља се грешка. На крају, имамо позив функције маин() где дефинишемо „д” објекат класе „Дата” и постављамо вредност „20” за овај објекат „д”. Након тога, позивамо функцију гетВалуе() да бисмо добили вредност „д“ објекта.

Промпт генерише резултате претходне имплементације где даје грешку на „++в“ јер нам није дозвољено да мењамо вредност објеката функције члана цонст:

Закључак

У закључку, улазимо у функцију цонст у Ц++ која се користи да би се избегле случајне промене у вредности програма. Чланске функције цонст у Ц++ су функције само за читање чија модификација објеката на којима се позива није дозвољена. Такође смо имплементирали различите сценарије функције цонст да бисмо демонстрирали њену функционалност у Ц++.