Kezdőoldal » Számítástechnika » Programozás » Mit jelent ez a C++os kifejezés?

Mit jelent ez a C++os kifejezés?

Figyelt kérdés

Ebben a kódban

char t='a';

std::cout << (int) t;


mit jelent az (int) és mikor lehet az ilyen zárójeles kifejezéseket használni? azt tudom hogy ez a két sor annyi hogy kiíratja az 'a' karakterkódját, szóval itt valami char->int konvertálás történik, vagy pontosan mi?


2011. jún. 14. 14:55
 1/3 anonim ***** válasza:

Ezt hívják "cast"-olásnak. Ezzel a módszerrel éred el, hogy a fordító mostantól az adott változót az általad jelzett (most int) típusként használja. Használatánál körültekintőnek kell lennie.

A jelen példában létrehozol egy karakter típust, aminek a típusát a kiírás előtt egész számmá változtatod. Mivel a karaktereket alapból számként tárolja, ezért semmilyen adatvesztés nem történik itt. Más esetben előfordulhat.

2011. jún. 14. 15:02
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:

(típus) a C-stílusú kasztolás, azaz típuskonverzió szintaxisa. Nem szép, ne használd. Helyette static_cast<int>(t) ebben az esetben. Hosszabb, de sokkal jobb gyakorlat (részben épp azért, mert hosszabb).


És nem azért nincs adatvesztés, mert a karaktereket is számként tároljuk, hanem mert az int mindig nagyobb egész, mint a char, mivel legalább két char-nyi (a C++-ban a típusok méretének az alapegysége a char, minden típus a char méretének egész számú többszörösét foglalja).

2011. jún. 14. 15:22
Hasznos számodra ez a válasz?
 3/3 A kérdező kommentje:
Világos! Ezer köszönet mindkét válaszolónak!
2011. jún. 14. 21:41

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!