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?