Minek megadni c++ - ban a visszatérési érték típusát ha a visszatérési értéktől eltérő típust is vissza lehet adni?
Például:
long F() { int x = 8 ; return x ; }
//main
//call F
short x = F() ;
Lássátok egy int értékét adom vissza és bele teszem azt egy short típusba.
Akkor most mit is jelent a függvényben az a long típus?
Mit akar az ott jelenteni?
Long a visszatérési érték típusa de én mégis intet tudok vissza adni.
Iostream látod még is lehet.
De szerintem valamit nagyon félre értek.
Eltudnátok magyarázni?
//Ebben a példában jól látható:
# include <iostream>
long F() { int x = 5 ; return x ; }
int main() {
short x = F() ;
std::cout << x ;
return 0 ;
}
Nem a visszatérési értéknek megfelelő típust adok vissza.
És mégis lefordul.Akkor most mire van a függvény visszatérési típusa?
Nem lehet, még mindig. Ezt implicit konverziónak hívják. Az intből csinál egy longot (szó nélkül megteheti, minden int ábrázolható longként is, biztonságos konverzió), ezt visszaadja, majd belerakja egy shortba (ezért esetleg már vernyákolhat a fordító WARNINGgal, mert a long értékének egy része elveszhet, de nem fordítási hiba), szintén konvertálva.
Már azt hittem, valami pointeres bűvészkedést fogsz itt tolni, de nem, az alapokkal vannak gondok.
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!