öntvény

Seo Wiki - Search Engine Optimization és programozási nyelvek

Hoz típusú (típus konverzió) - átalakulása egy változó értéke az egyik típusú, hogy más típusú értéket. Osztja az implicit és explicit típus konverziót.

  • Ha egyértelműen meg kell határozni, hogy milyen típusú működtetése változó szeretné átalakítani az eredeti változót.
  • Amikor implicit konverzió konverzió automatikusan történik, a szabályok szerint ebben az irányelvben megállapított programozási nyelv.
  • Továbbá, a nyelv a speciális funkciók vezetni lehet beállítani

implicit típus

Szükségtelen hozása előfordul mind változó közben hozzárendelés, és összehasonlítási műveletek, értékelése az expressziós. Amikor használható az expressziós több különböző típusú értéket, egy vagy több altípusainak átalakítást végre lehet hajtani egy több gyakori típusa (supertype), egy nagy választéka lehetséges értékek.

Minden alkalommal, amikor a műveletet végző összehasonlítás vagy megbízás különböző típusú változók kap egy típusát. Meg kell óvatosan alkalmazható implicit típusát. Amikor fordítására száma valós típusú egész szám, a tört része a redők. Fordított működtetése egész szám, hogy a valódi is vezethet, hogy csökken a pontosság miatt a különböző ábrázolásai valós és egész számok a gép szintjén. Például egy valós típusú egyetlen IEEE 754 nem pontosan képviselik a száma 16.777.217, míg a 32-bites egész típusú lehet. Ez ahhoz vezethet, olyan helyzetekben, ahol összehasonlítás számára az egyenlő az azonos számú képviselt típusok (int, és egyetlen) ad hamis eredményt (a számok nem egyeznek meg egymással.)

explicit típus

Ha explicit leadott változó előtt fel kell tüntetni zárójelben új típus neve, például:

int X; int Y = 200; char C = 30; X = (int) C * 10 + Y; // változó C csökken a int típusú.


Ha ebben a példában lenne az explicit típus nem lett végrehajtva, a fordító azt javasolta, hogy az expressziós C * 10 + Y X változó van beállítva, hogy 640, de nem a megfelelő 3200. Ennek eredményeként a változó működtetési C típusú által elismert a fordító, mint egy 16-bites és a hiba a fent leírt nem merül fel.

A C ++,

A C ++, négy féle öntött. Mind a négy típus van írva a

Terjedelmes kulcsszavak egy emlékeztetőt, hogy a programozó, hogy a leadott tele van problémákkal.

static_cast
  • Cél: typecast a szokásos szabályok, a fordító nem hajlandó, hogy automatikusan (eltér azoktól a C (type_to) expression_from csak az, hogy a mutató nem működik; reinterpret_cast használt mutatók). Ez vonatkozik:
    • numerikus típus;
    • pointerek és referenciák konvertálása során a szülő típus;
    • típusától konstruktőrök vagy átváltási műveleteket, mint a kezelő type_to;
    • Sablon - akár sablon fordító specializáció eldönti, hogy melyik műveletet kell használni;
    • a műveletet. akinek akkor - és más -part kell az azonos típusú.
  • Korlátozások expression_from. sz.
  • Korlátozások type_to. léteznie kell egy módja annak, hogy konvertálni type_to.
  • hogy a kód termel: általában igen.
  • Lehetséges hibák: viszonylag biztonságos. Logikai hiba lehetséges, ha betesz a megfelelő típusú vagy akár hiányzik a szellem, ha ez szükséges. Elképzelhető, hogy lesz egy ideiglenes objektum átalakítás után. amely biztonságosan megsemmisítik együtt minden megváltozik.
reinterpret_cast
  • Cél: tároló Land tekinteni, mint egy tárgy egy másik típusú.
  • Korlátozások expression_from. beépített típus (BOOL, char, integer típusú) mutatót.
  • Korlátozások type_to. beépített típus (BOOL, char, integer típusú) mutatót.
  • hogy a kód nem termel.
  • Lehetséges hibák: Land a valóságban nem lehet az ilyen típusú. Nincs módja, hogy ellenőrizze ki, a teljes felelősséget a helyességét átváltási programozó veszi át.