Cum se implementează apelul prin referință în C ++



Acest articol vă va oferi o cunoaștere detaliată a apelului prin referință în C ++ cu implementări și a modului în care acesta diferă de apelul după valoare.

Lucrul cu C ++ nu este o sarcină dificilă dacă aveți deja un fundal în C, deoarece ambele împărtășesc tone de concepte între ele. Dar, C ++ are câteva concepte care nu fac parte din paradigma C. În acest articol Call by Reference în C ++, vom vorbi despre un astfel de concept care este variabilele de referință și aplicațiile sale în următoarea ordine:

Variabile de referință

C ++ ne oferă un nou tip de variabilă, adică o variabilă de referință. Ne putem gândi la o variabilă de referință ca la o poreclă pentru variabila noastră originală. Aceasta este funcționalitatea exactă a unei variabile de referință într-o singură linie.





De exemplu, dacă numele tău este Harrison, dar acasă, membrii familiei tale te numesc Harry. Acum, să trecem prin câteva detalii ale variabilelor de referință. Declarația și utilizarea acestui tip de variabilă sunt diferite de variabilele obișnuite pe care le folosim, dar foarte asemănătoare cu variabilele pointer.

Sintaxă:



int Hello = 1 int * ptr int & World = Hello

Când creăm o variabilă „Bună ziua” care conține valoarea „1”, un segment de memorie este folosit pentru a răni valoarea „1”, numele acestui segment va fi „Bună ziua”, iar adresa acestui segment va fi o valoare hexagonală, de exemplu0x64. când scriemint& Lumea = Bună ziuaSe creează variabila „Lumea” care îndreaptă spre aceeași locație de memorie.

cum se convertește șirul de date în java

Includerea liniei World ++ va face modificări la adresa 0x64, ceea ce înseamnă că se va schimba și valoarea variabilei „Hello”. Unii ar putea arăta că cum sunt variabile de referință diferite de variabilele pointer pe care le vom discuta în ultima parte a acestui post.

Apel după valoare și Apel prin referință în C ++

Apel după valoare: Apelarea după valoare este o metodă larg utilizată. De cele mai multe ori veți utiliza abordarea apelului prin valoare, deoarece nu doriți ca valorile inițiale ale variabilelor să fie modificate. Prin urmare, am folosit metoda apelului prin valoare pentru a apela o funcție, doar valorile variabilelor sunt transmise. Acest lucru se realizează prin crearea de variabile fictive în memorie.



#include folosirea spațiului de nume std void add (int a, int b) {a = a + 10 b = b + 10 cout<<'Value of a = '<  Apelați după valoare în C ++

Din imaginea de mai sus, putem vedea că de îndată ce apelăm funcția add (), valorile variabilelor x și y sunt copiate în variabilele a și b. A și b sunt variabile fictive.

Apelați prin referință: Acum, să vorbim despre apel prin metoda de referință. În această metodă nu sunt create variabile fictive separate, o referință a unei variabile deja existente este transmisă metodei. Această referință indică aceeași locație de memorie, prin urmare nu se fac copii separate în memorie. Punctul important de remarcat aici este că modificările făcute în variabilele de referință sunt reflectate în variabila fictivă.

#includeți utilizarea spațiului de nume std void add (int & a, int & b) {a = a + 10 b = b + 10 cout<<'Value of a = '< int & min (int & a, int & b) {if (a 

După cum putem vedea, funcția de mai sus arată diferit în comparație cu funcțiile normale, deoarece tipul de returnare este „int &”. Această funcție returnează o referință la a sau b în funcție de condiție. Punctul important de remarcat aici este că valorilenu sunt returnate.

Dacă numim funcția min (x, y) = 10. 10 va fi atribuit lui x dacă este minim sau la y dacă y este minim.

Apelați prin referință Vs Pointer

În toate exemplele noastre am văzut că am atribuit întotdeauna o valoare variabilei de referință pe care am creat-o, deoarece variabilele de referință nu pot fi NULL, în timp ce variabilele de pointer pot fi NULL și pot provoca erori neașteptate.

structura datelor din dicționar în java

Variabilele de referință nu pot fi realocate, în timp ce variabilele pointer pot indica o altă variabilă mai târziu în program.

O variabilă pointer deține valoarea adresei unei anumite variabile în timp ce adresa variabilei de referință este aceeași cu cea a variabilei la care se referă.

Cu aceasta, ajungem la sfârșitul acestui articol Apel de referință în articolul C ++. Sper că ați înțeles diferitele implementări ale apelului în funcție de valoare și referință și în ce fel diferă ambele.

Dacă doriți să aflați mai multe, consultați de Edureka, o companie de învățare online de încredere. Cursul de formare și certificare Java J2EE și SOA al Edureka este conceput pentru a vă instrui atât pentru conceptele Java de bază, cât și pentru cele avansate Java, împreună cu diverse cadre Java, cum ar fi Hibernate & Spring.

Ai o întrebare pentru noi? Vă rugăm să o menționați în secțiunea de comentarii a acestui blog și vă vom răspunde cât mai curând posibil.