Programowanie w języku C/C++

Rzutowanie

  • 2012-03-27 16:43
  • 3 komentarze
  • 11171 odsłon
  • Oceń ten tekst jako pierwszy
Zamiana danych jednego typu na inny.
W C++ istnieją 4 operatory rzutowania i jeden sposób z czasów języka C (niezalecany)

Operatory rzutowania w C++



Aliasy rzutowania


Operatory rzutowania w C++ wydają się być zbyt długie. Można je skrócić używając preprocesora bądź lepiej - szablonu.

//Rzutowanie static_cast
 
//preprocesor
#define SCAST static_cast
 
//szablon
template<class OUT, class IN> OUT sCast(IN val)
{
    return static_cast<OUT>(val);
}
 
/* ... */
int a = -8;
unsigned b = SCAST<unsigned>(a);
/* lub */
unsigned b = sCast<unsigned>(a);


Rzutowanie w stylu C


(type) (data)
type (data)
(type) data

type - typ danych na, który rzutujemy
data - dane do rzutowania

Wady rzutowania w stylu C


-powstają błędy trudne do zlokalizowania,
-powstaje duże nagromadzenie nawiasów.

3 komentarze

grizz 2012-03-27 16:43

W Operatorach rzutowania źle wyświetla się gwiazdka

adam.chyla 2009-10-05 00:30

"To jest wywołanie konstruktora"
Też o tym słyszałem.

manfredek 2009-04-15 18:10

Jeśli type(expr) to rzutowanie w stylu C to ja jestem zającem... To jest wywołanie konstruktora, nieuku.