Rzutowanie const_cast przy pomocy wskazników
Ostatnio zmodyfikowano 2015-12-17 21:12
Sonys1234 Temat założony przez niniejszego użytkownika |
Rzutowanie const_cast przy pomocy wskazników » 2015-12-17 17:23:15 Siemanko. Jak zwykle potrzebuję Waszej pomocy :P Mam problem z użyciem rzutowania. Po rzutowaniu i wpisaniu do wskaznika nowej liczby, liczba się niestety nie zmienia i na konsoli pokazuje się dalej liczba 3.14. Ten przykład jest prosto z Symfonii C++. #include <iostream>
using namespace std;
int main() { double zmienna = 0; const double stala = 3.14; double * wsk_do_zmiennej = & zmienna; const double * wsk_do_stalej = & stala; const double * wsk2_do_stalej; cout << "Na poczatku stala = " << stala << endl; wsk2_do_stalej = wsk_do_zmiennej; wsk_do_zmiennej = const_cast < double *>( wsk_do_stalej ); * wsk_do_zmiennej = - 333; cout << "Potem stala = " << stala << endl; double * const st_wsk_do_zmiennej = const_cast < double * const >( wsk_do_stalej ); wsk_do_zmiennej = st_wsk_do_zmiennej; int * wskint; wskint = reinterpret_cast < int *>( const_cast < double *>( wsk_do_stalej ) ); return 0; } |
|
Monika90 |
» 2015-12-17 17:42:26 Nie można zmienić wartości stałej za pomocą const_cast, ani w żaden inny sposób. Twój program ma niezdefiniowane zachowanie, czyli innymi słowy jest błędny. |
|
Sonys1234 Temat założony przez niniejszego użytkownika |
» 2015-12-17 20:12:33 Aha, czyli niektóre metody zawarte w książce "Symfonia C++ Standard" są już nieaktualne? |
|
DejaVu |
» 2015-12-17 21:12:41 @Sonys1234: Technika jest aktualna, ale przykład użycia jest błędny. |
|
« 1 » |