Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Rzutowanie const_cast przy pomocy wskazników

Ostatnio zmodyfikowano 2015-12-17 21:12
Autor Wiadomość
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++.

C/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;
}
P-142098
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.
P-142099
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?
P-142111
DejaVu
» 2015-12-17 21:12:41
@Sonys1234: Technika jest aktualna, ale przykład użycia jest błędny.
P-142113
« 1 »
  Strona 1 z 1