const value
viene spesso utilizzato nella programmazione. Fornisce al programmatore la sicurezza che il valore non cambierà in futuro. Sfortunatamente, questo non è pienamente applicato. Di conseguenza, a volte causa errori sottili che sono molto difficili da decifrare. Come esempio:Modi per modificare il valore const in C++
int a = 1;
const int& b = a; // I promise I will not change
a = 3; // I am a liar, I am now 3
cout << b; // As I will now show 3
È possibile cambiare const
valori anche in altri modi; alcuni di questi sono piuttosto complessi e richiedono una buona quantità di codice che spesso si perde in un altro segmento di codice e quindi causa bug.
Così qualcuno dovrebbe elaborare i possibili modi per modificare un const value
? Non preoccuparti se non sai tutto, molti non lo farebbero (incluso me stesso). Dì solo tutti i modi in cui sai - dopotutto puoi solo dare quello che hai!
'a = 3' non è una bugia poiché' a' è non-const. 'const_cast (b) = 3;' sarebbe una bugia. –
'b' non ha promesso che il valore non cambierà. Ciò che viene applicato è che non è possibile modificare il valore usando direttamente il riferimento 'const'. Penso che sia una domanda interessante, ma il tuo esempio non è sicuramente il migliore – user463035818
ma non è questo bogus di esempio dato che stai facendo 'b' const not' a' se hai fatto 'b = 3' allora non sarebbe riuscito a compilare – EdChum