Kezdőoldal » Számítástechnika » Programozás » Elmagyarázná valaki? C++

Elmagyarázná valaki? C++

Figyelt kérdés

const SIMPLECAT* const FunctionTwo()


Nem értem ezt a függvényt.

És nem is tudok többet mondani erről.

Itt a FunctionTwo függvény nem változtathassa meg semminek az értékét és nem is lehet benne máshoz memóriacímet rendelni?

Vagy,hogy van ez?


2012. febr. 5. 05:24
 1/4 iostream ***** válasza:

"változtathassa"? Jézusom, magyarul tanulj meg, mert ez gyalázat.


Amúgy a FunctionTwo függvényről amit tudunk:

- nincs neki paramétere, tehát ezekkel nem kell foglalkozni.

- amit visszaad, az egy konstans SIMPLECAT objektumra mutató konstans mutató. Tehát rajta keresztül nem változtatható meg az objektum (ez az első konstansság), és maga a mutató sem mutathat másra (ez a második). A visszatérési érték semennyiben nem befolyásolja a függvényt, a FunctionTwo működhet úgy, hogy mindent amit elér megváltoztat, és a végén egy return 0;-val végez.

2012. febr. 5. 17:24
Hasznos számodra ez a válasz?
 2/4 A kérdező kommentje:

Nem értem bonyolult.

Mit jelent az,hogy rajta keresztül nem változtatható meg az objektum?

Azt,hogy a visszatérési értéket nem lehet megváltoztatni a FunctionTwo függvénnyel,és a visszatérési érték memóriacímét sem lehet megváltoztatni?

2012. febr. 5. 19:59
 3/4 iostream ***** válasza:

"Azt,hogy a visszatérési értéket nem lehet megváltoztatni a FunctionTwo függvénnyel,és a visszatérési érték memóriacímét sem lehet megváltoztatni?"


A visszatérési értéket a függvény állítja elő. Muszáj neki megváltoztatni, hiszen előtte nem létezett.

A visszatérési érték címe pedig fix dolog, ott van a veremben, lemásolni az ojjektumot le lehet, de maga az ojjektum ottmarad.


Vegyünk egy példát.

Van az int* típus, ami egy intre mutató pointer.

Van a const int* típus, ami egy olyan intre mutató pointer, amelyen keresztül az intet nem lehet megváltoztatni. Tehát ha const int* ip = &i; akkor *ip = 2; fordítási hibát fog adni.

Van az int* const típus, ami egy olyan intre mutató pointer, amit nem lehet megváltoztatni. Tehát ha int* const cip = &i; akkor *cip = 2; lefordul, de cip = &j; már nem.


Ezt a kettőt kombinálva kapjuk a const int* const típust, ahol se a mutatót, se a mutatott értéket nem lehet módosítani. Na, egy ilyen mutatót ad vissza a függvényed. Semmi más megkötés nincs.

2012. febr. 5. 22:05
Hasznos számodra ez a válasz?
 4/4 A kérdező kommentje:
Értem kösz.
2012. febr. 6. 19:36

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!