Typecasting

Iz E-študij, proste zakladnice študentskega znanja

Skoči na: navigacija, iskanje

Typecasting je angleški izraz in pomeni, da pretvorimo en podatkovni tip v drugega, da se izognemo določenim omejitvam pri podatkovnih tipih.

Pojavi se v več različnih programskih jezikih, najbolj značilni pa so Java, C, C++ in mnogi drugi sodobni objektno-orientirani programski jeziki

Primer typecastinga

float f = (float)1.55;

Z odebeljeno pisavo je označen typecasting.

int i = (int)f;

Spremenljivka f je bila typecastana v obliko integer, kar pomeni, da je f izgubil vse decimalke, ker so v zapisu integer lahko predstavljena le cela števila. Odvisno od izvedbe typecastinga bo sedaj i dobil vrednost 2 (zaokroževanje decimalk) ali 1 (rezanje decimalk).

Problemi pri typecastanju

Ker se pretvorba izvrši medtem ko je program pognan, prevajalnik ne more preverjati, ali bo določena pretvorba pravilna ali ne. Takim napakam pravimo semantične napake. Napake, ki se lahko pojavijo, so izguba natančnosti, pri določenih primerih tudi popolnoma nepričakovan rezultat.

Sledeči primer je dovolj dober dokaz, kako pride do nepričakovane napake, ker je podatkovni tip byte dovolj velik za razpon števil med -128 in +127, se bo število 300 pretvorilo v 44, kjer 300-256 (256 možnih kombinacij v bajtu) je 44:

int i = 300;
byte b = (byte)i;
Osebna orodja
Imenski prostori
Različice
Dejanja
navigacija

Tiskanje/izvoz
orodja