C kezdőknek

C ++ kezdők

3.6. referencia típus

Ha nem adja meg a selejtező const, mindhárom meghatározások referencia okozna fordítási hibát. Azonban az oka annak, hogy a fordító nem megy át ilyen meghatározások nem egyértelmű. Próbáld megérteni.
Mert literálok többé-kevésbé világos: nem kell, hogy képes legyen közvetlenül megváltoztatni a szó értéket mutató vagy hivatkozásokat. Ami a tárgyak más típusú, a fordító átalakítja a forrás objektum egy kiegészítő. Például, ha írunk:

a fordító alakítja, mint ez:

Megpróbálom kijavítani a helyzet hozzáadásával const is sikertelen:

Mi ennek az oka? Figyelmesen olvassa el a definíció, azt látjuk, hogy pi_ref egy hivatkozás egy const mutatót egy objektum típusú int. És szükségünk van egy nem const mutató egy const objektum, így a jobb lesz a következő bejegyzést:

mi inicializálni pointer pi értéke nulla, ami azt jelenti, hogy a PI nem mutat semmilyen tárgyat. Ugyanakkor a rekord

const int ri = 0;
Ez azt jelenti, valahogy így:
int temp = 0;
const int ri = temp;

Ami az értékadó operátor, a következő példát:

Mi a különbség a független tárgyak, hivatkozások és linkek paraméterek? Ha írunk:

ez megegyezik a következőképpen határozza meg a referencia a funkción belül:

(További vonatkozó hivatkozások használatát, mint a formális paraméterek funkciók tárgyalja a 7. fejezet)

Gyakorlat 3.19

Vannak olyan hibák az adatok meghatározása? Megmagyarázni. Hogyan kijavítani őket?

Gyakorlat 3.20

Ha hibás (használt definíció a korábbi gyakorlat) között az alábbi hozzárendelés műveleteket?

Gyakorlat 3.21

Kapcsolódó cikkek