Како имплементирати позив референцом у Ц ++



Овај чланак ће вам пружити детаљно знање о позиву путем референце у Ц ++-у са имплементацијама и како се разликује од позива по вредности.

Рад са Ц ++-ом није тежак задатак ако већ имате позадину у Ц-у, јер обојица међусобно деле гомилу концепата. Али, Ц ++ има неке концепте који нису део Ц парадигме. У овом позиву путем референци у чланку Ц ++, говорићемо о једном таквом концепту који је референтне променљиве и његове примене у следећем редоследу:

Референтне променљиве

Ц ++ нам даје нови тип променљиве, тј. Референтну променљиву. Референтну променљиву можемо сматрати надимком за нашу оригиналну променљиву. То је тачно тачна функционалност референтне променљиве у једном реду.





На пример, ако се зовете Харрисон, али сте код куће, чланови породице вас зову Харри. Сада да прођемо кроз неке детаље референтних променљивих. Декларација и употреба ове врсте променљивих се разликују од уобичајених променљивих које користимо, али су веома сличне променљивим показивача.

Синтакса:



инт Хелло = 1 инт * птр инт & Ворлд = Здраво

Када креирамо променљиву „Здраво“ која садржи вредност „1“, сегмент меморије се користи за рањавање вредности „1“, име овог сегмента ће бити „Здраво“, а адреса овог сегмента ће бити нека хексадецимална вредност0к64. кад пишемоинт& Ворлд = ЗдравоНаправљена је променљива „Свет“ која показује према истој меморијској локацији.

Укључивање реда Ворлд ++ унеће промене у адресу 0к64, што значи да ће се променити и вредност променљиве „Здраво“. Неки би могли да укажу на то како референтне променљиве различите од показивачких променљивих о којима ћемо разговарати у другом делу овог поста.

Позив по вредности и Позив по референци у Ц ++

Позив по вредности: Цалл би Валуе је метода која се широко користи. Већину пута ћете користити приступ позивом према вредности јер не желите да се промене ваше оригиналне вредности променљивих. Због тога смо користили метод позивања вредности за позивање функције, преносе се само вредности променљивих. То се постиже стварањем лажних променљивих у меморији.



#инцлуде усинг спаце намес стд воид адд (инт а, инт б) {а = а + 10 б = б + 10 цоут<<'Value of a = '<  Позив по вредности у Ц ++

Из горње слике видимо да чим позивамо функцију адд () вредности променљивих к и и се копирају у променљиве а и б. А и б су лажне променљиве.

Позив путем референце: Сада, разговарајмо о позиву референтном методом. У овој методи се не креирају засебне лажне променљиве, референца већ постојеће променљиве се преноси на методу. Ова референца упућује на исто место меморије, па се у меморији не праве засебне копије. Овде је важно напоменути да се промене направљене у референтним променљивим одражавају у лажној променљивој.

#инцлуде усинг спаце намес стд воид адд (инт & а, инт & б) {а = а + 10 б = б + 10 цоут<<'Value of a = '< инт & мин (инт & а, инт & б) {иф (а 

Као што видимо да горња функција изгледа другачије у поређењу са нормалним функцијама, јер је тип поврата „инт &“. Ова функција враћа референцу на а или б у зависности од стања. Овде је важно напоменути да су вредностисе не враћају.

Ако позовемо функцију мин (к, и) = 10. 10 ће бити додељено к ако је минимално или и ако је и минимално.

Позив помоћу референци Вс Поинтер

У свим нашим примерима које смо видели увек смо референтној променљивој коју смо креирали додељивали вредност, јер референтне променљиве не могу бити НУЛЛ, док променљиве показивача могу бити НУЛЛ и могу изазвати неочекиване грешке.

Референтне променљиве се не могу поново доделити, док променљиве показивача могу усмерити на неку другу променљиву касније у програму.

Променљива показивача садржи вредност адресе одређене променљиве, док је адреса референтне променљиве иста као и променљиве на коју се односи.

Овим смо дошли до краја овог позива позивањем у чланку на Ц ++. Надам се да сте разумели различите примене позива помоћу вредности и референце и како се обоје разликују.

Ако желите да сазнате више, погледајте Едурека, поуздана компанија за учење на мрежи. Едурекин курс за обуку и сертификацију Јава Ј2ЕЕ и СОА осмишљен је тако да вас оспособи за основне и напредне Јава концепте заједно са разним Јава оквирима попут Хибернате & Спринг.

Имате питање за нас? Молимо вас да га спомињете у одељку за коментаре овог блога и јавићемо вам се што је пре могуће.

пхп принт_р у стринг