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

Zmienianie wartości obiektu const z innego pliku

Ostatnio zmodyfikowano 2013-10-31 18:05
Autor Wiadomość
czosnek17
Temat założony przez niniejszego użytkownika
Zmienianie wartości obiektu const z innego pliku
» 2013-10-28 17:35:25
Mam plik defnicje.hpp, a w nim zmienne const int;
W pliku main.cpp chcę zmienić ich wartość i nie działa - program się wywala. Jeżeli wykonam taką operację na zmiennych z funkcji main, to działa np.

main.cpp:
C/C++
#include "definicje.hpp"
////
const int obj = 123; // to zmieniam
const int * wskobj = & obj;
int * wsk;
wsk = const_cast < int *>( wskobj );
* wsk = 456;
cout << "wsk = " <<* wsk << endl;
P-94726
pekfos
» 2013-10-28 17:44:21
Po co chcesz zmieniać wartości stałych?
P-94727
czosnek17
Temat założony przez niniejszego użytkownika
» 2013-10-28 17:50:07
Używam ich w bardzo wielu miejscach np przy tablicach, a więc muszą być stałe. Początkowo załatwiałem to za pomocą #define, ale teraz zajmuję się mechanizmami wczytywania map, a nie każda ma taką samą wielkość. Zmiany będę wprowadzał przed utworzeniem wszystkich obiektów, więc nic złego nie powinno się dziać.
P-94728
SeaMonster131
» 2013-10-28 18:13:25
To może twórz tablice dynamicznie?
P-94729
czosnek17
Temat założony przez niniejszego użytkownika
» 2013-10-28 19:11:01
To jest rozwiązanie, ale musiałbym wprowadzać dużo zmian w kodzie, a tak to tylko bym zmienił wartość zmiennych i gotowe.
P-94732
pekfos
» 2013-10-28 19:31:32
Więc wprowadzaj te zmiany. To, o co pytasz jest niezgodne ze standardem C++. Rozmiar tablicy musi być znany w czasie kompilacji, a modyfikowanie stałych to UB.
P-94733
czosnek17
Temat założony przez niniejszego użytkownika
» 2013-10-28 19:49:32
Kod ma około 3,5 tys. linii kodu i bardzo często używam tablicy(obiekty mojej klasy). Jest ona dwuwymiarowa, co jeszcze utrudnia sytuację, bo muszę mieć stałą, aby stworzyć taką tablicę. Poza tym wszędzie pracuję na oryginalnej tablicy, a używając new musiałbym wiele razy ją kopiować nie mając dostępu do oryginału.
//Przeczytałem co napisałeś po zedytowaniu posta, czyli mój sposób odpada(chyba że jakbym na początku ustawił zmienne na max rozmiar mapy, a potem je zmniejszyło, to by się nic nie stało). Może jakiś inny sposób od tablic dynamicznych(z powodów wyżej wymienionych)?
P-94735
jankowalski25
» 2013-10-28 20:05:18
Poza tym wszędzie pracuję na oryginalnej tablicy, a używając new musiałbym wiele razy ją kopiować nie mając dostępu do oryginału.
Użyj referencji do tej tablicy.
P-94736
« 1 » 2
  Strona 1 z 2 Następna strona