Kuinka toteuttaa puhelu viitteenä C ++: ssa



Tämä artikkeli antaa sinulle yksityiskohtaisen tietämyksen C ++ -sovelluksen ja viittauspyynnön toteutuksista ja siitä, miten se eroaa puhelusta arvon mukaan.

Työskentely C ++: n kanssa ei ole vaikea tehtävä, jos sinulla on jo tausta C: ssä, koska molemmat jakavat tonnia käsitteitä keskenään. Mutta C ++: lla on joitain käsitteitä, jotka eivät ole osa C-paradigmaa. Tässä C ++ -artikkelin referenssipyynnössä puhumme yhdestä sellaisesta käsitteestä, joka on referenssimuuttujat ja sen sovellukset seuraavassa järjestyksessä:

Viitemuuttujat

C ++ antaa meille uuden tyyppisen muuttujan eli vertailumuuttujan. Voimme ajatella viitemuuttujaa alkuperäisen muuttujamme lempinimeksi. Se on referenssimuuttujan tarkka toiminnallisuus yhdellä rivillä.





Esimerkiksi, jos nimesi on Harrison, mutta kotona, perheenjäsenesi kutsuvat sinua Harryksi. Käydään nyt läpi muutamia viitemuuttujien yksityiskohtia. Tämän tyyppisten muuttujien ilmoittaminen ja käyttö eroavat tavallisista muuttujista, mutta ovat hyvin samanlaisia ​​kuin osoitinmuuttujat.

Syntaksi:



int Hei = 1 int * ptr int & Maailma = Hei

Kun luomme muuttujan 'Hello', joka sisältää arvon '1', muistisegmenttiä käytetään arvon '1' haavoittamiseen, tämän segmentin nimi on 'Hello' ja tämän segmentin osoite on esimerkiksi hex-arvo.0x64. kun kirjoitammeint& Maailma = HeiLuodaan muuttuja 'maailma', joka osoittaa kohti samaa muistipaikkaa.

Rivi World ++ mukaan lukien muuttaa osoitetta 0x64, mikä tarkoittaa, että myös muuttujan ”Hello” arvo muuttuu. Jotkut saattavat huomauttaa, kuinka ovat viitemuuttujat, jotka eroavat osoittimen muuttujista, joista keskustelemme tämän viestin jälkimmäisessä osassa.

Soita arvon mukaan ja soita viitteenä C ++: ssa

Soita arvon mukaan: Call by Value on laajalti käytetty menetelmä. Useimmiten käytät kutsu arvo -menetelmää, koska et halua muuttujien alkuperäisten arvojen muuttumista. Siksi käytimme kutsua arvon mukaan -menetelmää funktion kutsumiseen, vain muuttujien arvot välitetään. Tämä saavutetaan luomalla muistiin muuttujia.



#include käyttämällä nimitilaa std void add (int a, int b) {a = a + 10 b = b + 10 cout<<'Value of a = '<  Soita arvon mukaan C ++

Yllä olevasta kuvasta voimme nähdä, että heti kun kutsumme add () -funktiota, x- ja y-muuttujien arvot kopioidaan muuttujiin a ja b. A ja b ovat nuken muuttujia.

Soita viitteellä: Puhutaan nyt puheesta vertailumenetelmällä. Tässä menetelmässä erillisiä nuken muuttujia ei luoda, viittaus jo olemassa olevaan muuttujaan siirretään menetelmään. Tämä viite viittaa samaan muistipaikkaan, joten erillisiä kopioita ei tehdä muistista. Tärkeä huomioitava asia on, että vertailumuuttujiin tehdyt muutokset heijastuvat nuken muuttujaan.

#include nimitilan käyttäminen std void add (int & a, int & b) {a = a + 10 b = b + 10 cout<<'Value of a = '< int & min (int & a, int & b) {jos (a 

Kuten voimme nähdä, että yllä oleva funktio näyttää erilaiselta kuin normaalit funktiot, koska palautustyyppi on 'int &'. Tämä toiminto palauttaa viitteen a tai b tilasta riippuen. Tärkeä seikka tässä on, että arvotei palauteta.

Jos kutsumme funktiota min (x, y) = 10. 10 osoitetaan x: lle, jos se on pienin, tai y: lle, jos y on pienin.

Soita viitteellä Vs Pointer

Kaikissa esimerkeissämme näimme, että olemme aina määrittäneet arvon luomallemme viitemuuttujalle, koska viitemuuttujat eivät voi olla NULL, kun taas osoitinmuuttujat voivat olla NULL ja voivat aiheuttaa odottamattomia virheitä.

Viitemuuttujia ei voida määrittää uudelleen, kun taas osoitinmuuttujat voivat osoittaa johonkin toiseen muuttujaan myöhemmin ohjelmassa.

Osoitinmuuttuja pitää sisällään tietyn muuttujan osoite-arvon, kun taas viitemuuttujan osoite on sama kuin muuttujan, johon se viittaa.

java jäsennä merkkijono tähän mennessä

Tämän avulla olemme päättäneet tämän C ++ -artikkelissa olevan kutsupyynnön. Toivon, että sait käsityksen puhelun erilaisesta toteutuksesta arvon ja viitteen mukaan ja siitä, miten ne molemmat eroavat toisistaan.

Jos haluat oppia lisää, tutustu Edureka, luotettava verkko-oppimisyritys. Edurekan Java J2EE- ja SOA-koulutus- ja sertifiointikurssit on suunniteltu kouluttamaan sekä ydin- että edistyneitä Java-konsepteja sekä erilaisia ​​Java-kehyksiä, kuten Hibernate & Spring.

Onko sinulla kysymys meille? Mainitse se tämän blogin kommenttiosassa ja otamme sinuun yhteyttä mahdollisimman pian.