frg Skrevet 14. januar 2005 Del Skrevet 14. januar 2005 Er det mulig å endre en const int verdi? f.eks ved bruk av const_cast eller lignende? Lenke til kommentar
søppel Skrevet 14. januar 2005 Del Skrevet 14. januar 2005 (endret) #include <iostream> using namespace std; int main() { int const* i = new int(123); *const_cast<int*>(i) = 321; cout << *i << endl; delete(i); int const& j = 123; const_cast<int&>(j) = 321; cout << j << endl; return(0); } // main Vakkert? ikke akkurat .. Edit: La til "reference-versjon". Endret 14. januar 2005 av søppel Lenke til kommentar
frg Skrevet 14. januar 2005 Forfatter Del Skrevet 14. januar 2005 (endret) Lekkert Takk! Endret 14. januar 2005 av frg Lenke til kommentar
☀ ❄ Skrevet 14. januar 2005 Del Skrevet 14. januar 2005 Oppførselen er derimot udefinert så lenge variabelen faktisk er konstant, fordi det kan finnes maskinvaresperrer for å sikre at den faktisk er konstant. Med andre ord, bare bruk const_cast<>() når du må late som at en variabel som ikke endres ikke er konstant. Lenke til kommentar
søppel Skrevet 14. januar 2005 Del Skrevet 14. januar 2005 Altså slik: #include <iostream> using namespace std; void func(int const& i) { const_cast<int&>(i) = 321; } // func int main() { int i = 123; func(i); cout << i << endl; return(0); } // main Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå