2012-02-14 12 views
0

私は次を使用して定数を変更できない理由を説明してください。変更定数

const int i = 10; 
int * p = reinterpret_cast<int *>(&i); 
+1

定数は...定数です!なぜあなたはそれを変えますか? – DonCallisto

+0

私はちょうどそれを乗り越える方法を知りたいですが、質問はそれを行う方法ではなかった、私は尋ねたなぜこのように行くことはできません..答えのためのThx! –

答えて

1

あなたはconst性を離れてキャストするconst_castを使用する必要があり、const_castは、この場合のために特別です。

+0

元のオブジェクトがconstとして宣言されていた場合、constをキャストして非constの方法で結果を使用すると、UBが呼び出されます。 – zinglon

0

constは定数を意味し、変更できません。 int nonconst_i = const_cast<int>(i);を実行し、nonconst_iを使用することができます

+0

int nonconst_i = const_cast (i); is not valid code =) –

+0

あなたの例では、 'int * p = const_cast (&i);'私は信じています。 – crush

関連する問題