No dobra, kotlet zrobił się gorący i może uda się tutaj coś uzyskać
czym jest rzutowanie ? A w zasadzie jak rozumieć EFEKT rzutowania dwóch różnych od siebie typów ? Bo w Qt bardzo często ta technika jest wykorzystywana.
Kodu nie podam, bo pod ręką nie mam ale mniej więcej do rzeczy. Mam kila typów int
, double
i char
- wiadomo, że jeden typ na drugi mogę rzutować i wiem czego po rzutowaniu się spodziewać - we wszystkich przypadkach będzie to liczba, która coś mi powie i ten wynik w jakiś sensowny sposób zinterpretuję np
int main()
{
char a='a';
int liczba1=64;
double liczba2=22.3;
cout << static_cast<int>(a) << endl;
cout << static_cast<char>(liczba1) << endl;
cout << static_cast<char>(liczba2) << endl;
}
powyższe rzutowanie jest dość intuicyjne.
Natomiast w programowaniu obiektowym ściślej mówiąc -dziedziczenie-, spotkałem się z opinią, że rzutowanie można wykorzystać do tego, aby dostać się do metod klasy nadrzędnej tj, rzutowanie w dół - w sensie, klasy OD której jest dziedziczenie - I pytanie jest takie - czy jest to prawdą ?
drugie pytanie jest takie - jak rozumieć WYNIK rzutowania ? UWAGA - podaję od czapy dwa zupełnie różne i nie związane ze sobą obiekty typu "button" i "window" - żebyśmy mieli jasność, wiem, że wynik będzie z d#%$py - ale może ktoś was poda sensowny przykład na obiektach, które po sobie dziedziczą i są ze sobą w jakiś sposób związane i jak rozumieć wynik takiego rzutowania
na te myśli nie znalazłem do dzisiaj satysfakcjonującej odpowiedzi - może tutaj się uda ?