Rzutowanie

Zamiana danych jednego typu na inny.
W C++ istnieją 4 operatory rzutowania + 1 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.
Informacje
Ostatnia modyfikacja 04-10-2009 11:46 Ostatni autor Mammoth
Ilość wyświetleń 2867 Wersja 2
Komentarz
adam.chyla dnia 05-10-2009 00:30
"To jest wywołanie konstruktora"
Też o tym słyszałem.
manfredek dnia 15-04-2009 18:10
Jeśli type(expr) to rzutowanie w stylu C to ja jestem zającem... To jest wywołanie konstruktora, nieuku.

Copyright © 2000-2006 by Coyote Group 0.9.3-pre3
Czas generowania strony: 0.0189 sek. (zapytań SQL: 9)