matematykaszkolna.pl
programowanie matrix: Czy mógłbym prosić o wytłumaczenie operatora rzutowania reinterpretcast? Szukałem informacji, ale średnio rozumiem jak go można wykorzystać obiekt.Pole1 = 100; obiekt. Pole2 = 200; int *Tab = reinterpretcast <int*>(&obiekt); cout << "Tab[0]: " << Tab[0] << endl; cout << "Tab[1]: " << Tab[1] << endl; Taki przykład mam, jakim sposobem i dlaczego za pomocą tego operatora tak się to zapisuje? Jakby ktos miał jeszcze jakieś inne przykłady wykorzystania tego operatora, to bym bardzo prosił o wstawienie.
14 wrz 02:56
matrix: up
14 wrz 17:02
Dziadek Mróz: Wracamy na naszą stronę: http://www.cplusplus.com/doc/tutorial/typecasting/ T reinterpret_cast<T>(arg) konwertuje wskaźnik jednego obiektu na wskaźnik drugiego obiektu bez powiązania typów poprzez kopię pamięci, tzn. rzutowanie książki na jabłko. Przy static_cast rzutujesz powiązane typy np. int na float. https://ideone.com/skdHHN #include <iostream> class Obiekt { public: int Pole1; int Pole2; }; int main(int argc, char **argv) { Obiekt obiekt; obiekt.Pole1 = 100; obiekt.Pole2 = 200; int *Tab = reinterpret_cast <int*>(&obiekt); std::cout << "Tab[0]: " << Tab[0] << std::endl; std::cout << "Tab[1]: " << Tab[1] << std::endl; } Pamięć [ 0x0000 | 0x0001 | 0x0002 | 0x0003 ] obiekt [ 100 | 200 ] Tab [ 100 | 200 ]
14 wrz 17:25
matrix: dziękuję
14 wrz 17:39