Rzutowanie
Zandalor
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
(<font color="blue">type</span>) (data)
<font color="blue">type</span> (data)
(<font color="blue">type</span>) data
<font color="blue">type</span> - 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.
W Operatorach rzutowania źle wyświetla się gwiazdka
"To jest wywołanie konstruktora"
Też o tym słyszałem.
Jeśli type(expr) to rzutowanie w stylu C to ja jestem zającem... To jest wywołanie konstruktora, nieuku.