Kuidas rakendada kõnet viitega C ++ -s



See artikkel annab teile üksikasjalikud teadmised rakenduse C ++ viited kõne kohta rakendustes ja selle erinevusest kõne väärtusest.

C ++ -ga töötamine pole keeruline ülesanne, kui teil on C-taust juba olemas, kuna mõlemad jagavad üksteisega palju mõisteid. Kuid C ++-l on mõned mõisted, mis ei kuulu C-paradigmasse. Selles C ++ artikli viitekõnes räägime ühest sellisest kontseptsioonist, milleks on võrdlusmuutujad ja selle rakendused järgmises järjekorras:

Referentsmuutujad

C ++ annab meile uut tüüpi muutujaid, st võrdlusmuutujaid. Võime mõelda võrdlusmuutujat kui algse muutuja hüüdnime. See on see, mis on võrdlusmuutuja täpne funktsionaalsus ühel real.



Näiteks kui teie nimi on Harrison, kuid kodus, kutsuvad pereliikmed teid Harryks. Vaatame nüüd võrdlusmuutujate üksikasju. Seda tüüpi muutujate deklaratsioon ja kasutamine erinevad tavapärastest muutujatest, mida me kasutame, kuid sarnanevad väga osuti muutujatega.

Süntaks:



int Tere = 1 int * ptr int & World = Tere

Kui loome muutuja 'Hello', mis sisaldab väärtust '1', kasutatakse väärtuse '1' valutamiseks mälusegmenti, selle segmendi nimeks saab 'Hello' ja selle segmendi aadressiks on näiteks mõni hex-väärtus0x64. kui me kirjutameint& Maailm = TereLuuakse muutuja ‘World’, mis osutab sama mälupunkti poole.

Rida World ++ lisamine muudab aadressi 0x64 muudatusi, see tähendab, et muutub ka muutuja ‘Tere’ väärtus. Mõni võib juhtida tähelepanu sellele, kuidas on viitemuutujad, mis erinevad osuti muutujatest, mida arutame selle postituse teises osas.

Kõne väärtuse ja viite järgi viide C ++

Kõne väärtuse järgi: Kõne väärtuse järgi on laialt kasutatav meetod. Enamasti kasutate väärtushelistamise meetodit, kuna te ei soovi muutujate algseid väärtusi muuta. Seetõttu kasutasime funktsiooni kutsumiseks meetodit call by value, edastatakse ainult muutujate väärtused. See saavutatakse näivmuutujate loomisega mällu.



mis on nukk ja peakokk
#include nimeruumi kasutamine st void add (int a, int b) {a = a + 10 b = b + 10 cout<<'Value of a = '<  Kõne väärtusega C ++

Ülaltoodud pildilt näeme, et niipea kui funktsiooni add () kutsume, kopeeritakse x ja y muutujate väärtused muutujatesse a ja b. A ja b on näiv muutujad.

Kõne viitega: Räägime nüüd kõnest viitemeetodi järgi. Selles meetodis eraldi näivmuutujaid ei looda, meetodile edastatakse viide juba olemasolevale muutujale. See viide osutab samale mälupunktile, mistõttu ei tehta mälus eraldi koopiaid. Siinkohal on oluline märkida, et võrdlusmuutujate muudatused kajastuvad näivmuutujas.

millist ideed Java jaoks kasutada
#include nimeruumi kasutamine st void add (int & a, int & b) {a = a + 10 b = b + 10 cout<<'Value of a = '< int & min (int & a, int & b) {kui (a 

Nagu näeme, näeb ülaltoodud funktsioon välja tavaliste funktsioonidega võrreldes erinev, kuna tagastustüüp on „int &”. See funktsioon tagastab viite a või b sõltuvalt tingimusest. Siinkohal on oluline märkida, et väärtusedei tagastata.

Kui kutsume funktsiooni min (x, y) = 10. 10 omistatakse x-le, kui see on minimaalne, või y-le, kui y on minimaalne.

Kõne viitega Vs Pointer

Kõigis meie näidetes nägime, et omistasime alati loodud referentsmuutujale väärtuse, kuna referentsmuutujad ei saa olla NULL, samas kui kursori muutujad võivad olla NULL ja põhjustada ootamatuid vigu.

kuidas teha faili javas

Võrdlusmuutujaid ei saa uuesti määrata, samas kui osuti muutujad võivad programmis hiljem osutada mõnele muule muutujale.

Osuti muutuja hoiab konkreetse muutuja aadressi väärtust, samal ajal kui võrdlusmuutuja aadress on sama, mis selle muutuja aadress.

Sellega oleme C ++ artiklis selle viite abil viimistletud. Loodan, et saite ülevaate kõne erinevast rakendamisest Väärtuse ja viite järgi ning sellest, kuidas need mõlemad erinevad.

Kui soovite rohkem teada saada, vaadake järgmist autor Edureka, usaldusväärne veebipõhine õppefirma. Edureka Java J2EE ja SOA koolitus- ja sertifitseerimiskursus on mõeldud selleks, et õpetada teid nii Java põhiliste kui ka edasijõudnute kontseptsioonide jaoks koos erinevate Java-raamistikega nagu Hibernate & Spring.

Kas teil on meile küsimus? Palun mainige seda selle blogi kommentaaride jaotises ja võtame teiega ühendust niipea kui võimalik.