Zmienianie wartości obiektu const z innego pliku
Ostatnio zmodyfikowano 2013-10-31 18:05
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: #include "definicje.hpp"
const int obj = 123; const int * wskobj = & obj; int * wsk; wsk = const_cast < int *>( wskobj ); * wsk = 456; cout << "wsk = " <<* wsk << endl;
|
|
pekfos |
» 2013-10-28 17:44:21 Po co chcesz zmieniać wartości stałych? |
|
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ć. |
|
SeaMonster131 |
» 2013-10-28 18:13:25 To może twórz tablice dynamicznie? |
|
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. |
|
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. |
|
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)? |
|
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. |
|
« 1 » 2 |