Mikor van szükség arra, hogy c++ ban konstans objektumra hivatkozóan deklaráljunk egy mutatót?
const RECTANGLE *pConstRect = new RECTANGLE;
Mikor szokja ezt használni a programozó?
Három lehetőség van:
- Konstans mutató, ami egy objektumra mutat (az egyenlőség bal oldalán van a const kulcsszó, mint ahogy írtad);
- Mutató, ami egy konstans objektumra mutat (az egyenlőség jobb oldalán van a const;
- Konstans mutató, ami egy konstans objektumra mutat (értelemszerűen mindkét oldalon kell);
Az első esetben a mutatóhoz nem rendelhetsz más címet, kvázi megváltoztathatatlan lesz, mint egy sima konstans változó, örökre az első definiált címet fogja hordozni.
A második esetben a mutató nem fogja tudni megváltoztatni az objektumot, azaz megvan az a biztonsága a dolognak, hogyha egy mutatót átadsz egy függvénynek, az biztosan nem fog változtatni az objektumon.
A harmadik esetben pedig mindkettő érvényesül.
Mégis, a tisztánlátás végett, az előzőt vedd figyelmen kívül.
Három lehetőség van:
- Mutató, ami egy konstans objektumra mutat (az egyenlőség bal oldalán van a const kulcsszó, mint ahogy írtad);
- Konstans Mutató, ami egy objektumra mutat (az egyenlőség jobb oldalán van a const);
- Konstans mutató, ami egy konstans objektumra mutat (értelemszerűen mindkét oldalon kell);
Az első esetben a mutató nem fogja tudni megváltoztatni az objektumot, azaz megvan az a biztonsága a dolognak, hogyha egy mutatót átadsz egy függvénynek, az biztosan nem fog tudni változtatni az objektumon (pl. módosító függvények az osztályban).
A második esetben a mutatóhoz nem rendelhetsz más címet, kvázi megváltoztathatatlan lesz, mint egy sima konstans változó, örökre az első definiált címet fogja hordozni.
A harmadik esetben pedig mindkettő érvényesül.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!