A C ++ alkalmazással végzett munka nem nehéz feladat, ha már van háttere C-ben, mivel mindketten rengeteg fogalmat osztanak meg egymással. De a C ++ -nak vannak olyan fogalmai, amelyek nem részei a C-paradigmának. Ebben a C ++ cikkben szereplő referencia-felhívásban egy ilyen fogalomról beszélünk, amely a referenciaváltozók és alkalmazásai a következő sorrendben:
- Referencia-változók
- Hívás érték és Hívás referencia szerint C ++ nyelven
- Visszatérés referenciával C ++ nyelven
- Hívás referenciával Vs Pointer
Referencia-változók
A C ++ új típusú változót ad, azaz referencia változót. Gondolhatunk egy referencia változóra, mint becenévre az eredeti változónk számára. Ez az, ami egy referencia változó pontos működése egy sorban.
Például, ha a neve Harrison, de otthon van, a családtagjai Harrynek hívnak. Most nézzük át a referenciaváltozók néhány részletét. Az ilyen típusú változó deklarálása és használata eltér az általunk használt szokásos változóktól, de nagyon hasonló a mutatóváltozókhoz.
Szintaxis:
c ++ tárolási osztály
int Hello = 1 int * ptr int & World = Hello
Amikor létrehozunk egy „Hello” változót, amely tartalmazza az „1” értéket, egy memóriaszegmenst használnak az „1” érték elszívására, ennek a szegmensnek a neve „Hello” lesz, és ennek a szegmensnek a címe például hex érték lesz.0x64. amikor írunkint& Világ = Helló
Létrejön a „világ” változó, amely ugyanazon memóriahely felé mutat.
A World ++ sor felvétele megváltoztatja a 0x64 címet, ez azt jelenti, hogy a „Hello” változó értéke is megváltozik. Néhányan rámutathatnak arra, hogy van referenciaváltozók, amelyek eltérnek a mutatóváltozóktól, amelyeket a bejegyzés második részében fogunk megvitatni.
Hívás érték és Hívás referencia szerint C ++ nyelven
Hívás érték szerint: Az érték szerinti hívás széles körben alkalmazott módszer. Legtöbbször a hívás érték szerint megközelítést használja, mivel nem akarja, hogy a változók eredeti értékei megváltozzanak. Ezért a hívás érték szerint metódust alkalmaztuk egy függvény meghívására, csak a változók értékeit adjuk át. Ezt úgy lehet elérni, hogy dummy változókat hoznak létre a memóriában.
#include névtér használatával std void add (int a, int b) {a = a + 10 b = b + 10 cout<<'Value of a = '<A fenti képből láthatjuk, hogy amint meghívjuk az add () függvényt, az x és y változók értéke átmásolódik az a és b változókba. A és b dummy változók.
Hívás hivatkozással: Most beszéljünk a hívásról referencia módszerrel. Ebben a módszerben külön dummy változókat nem hozunk létre, egy már létező változó hivatkozását továbbítjuk a módszerhez. Ez a hivatkozás ugyanarra a memóriahelyre mutat, ezért külön másolatok nem készülnek a memóriában. Itt fontos megjegyezni, hogy a referenciaváltozókban végrehajtott változtatások a dummy változóban tükröződnek.
#include névtér használatával std void add (int & a, int & b) {a = a + 10 b = b + 10 cout<<'Value of a = '< int & min (int & a, int & b) {if (aAmint láthatjuk, hogy a fenti függvény másképp néz ki a normál függvényekhez képest, mivel a visszatérés típusa „int &”. Ez a függvény a feltételtől függően visszaadja a vagy b hivatkozást. Itt fontos megjegyezni, hogy az értékeknem adják vissza.
Ha min (x, y) = 10. függvényt hívunk, akkor 10-et rendelünk x-hez, ha ez minimum, vagy y-hez, ha y minimum.
Hívás referenciával Vs Pointer
Minden példánkban láttuk, hogy mindig hozzárendeltünk egy értéket az általunk létrehozott referencia változóhoz, mivel a referencia változók nem lehetnek NULL, míg a mutató változók lehetnek NULL és váratlan hibákat okozhatnak.
A referenciaváltozókat nem lehet újra hozzárendelni, míg a mutatóváltozók a program későbbi részében valamilyen más változóra mutathatnak.
A mutatóváltozó egy adott változó címértékét tartja, míg a referenciaváltozó címe megegyezik azzal a változóval, amelyre hivatkozik.
Ezzel véget értünk ennek a C ++ cikkben szereplő hivatkozási felhívásnak. Remélem, megértette a felhívás különböző megvalósítását az Érték és a referencia alapján, és hogy mindkettő hogyan különbözik egymástól.
Ha többet szeretne megtudni, nézze meg a Edureka, egy megbízható online tanulási társaság. Az Edureka Java J2EE és SOA képzési és tanúsítási tanfolyamát arra tervezték, hogy mind az alapvető, mind a fejlett Java koncepciókra kiképezzen különféle Java keretrendszereket, például a Hibernate & Spring.
Van egy kérdésünk? Kérjük, említse meg a blog megjegyzés rovatában, és a lehető leghamarabb kapcsolatba lépünk Önnel.