PDA

View Full Version : const_cast



hi.alir
پنج شنبه 14 دی 1391, 22:42 عصر
کد زیر


const bool a = false;
cout << a;

بعد از کامپایل به کد زیر تبدیل میشه

cout << false;

مشکل اینجاست که وقتی از const_cast استفاده می کنیم بازم این اتفاق میفته. البته می دونم const_cast برای اینجور مواقع نیست ولی چی کار باید بکنم تا درست کار کنه؟
مثلا کد زیر آخر false چاپ میکنه به جای true


const bool a = false;

bool & ra = const_cast<bool&>(a);
ra = true;

cout << a;

وقتی تو asm تولید شده نگاه کردم، اصلا a رو push نمی داد به cout و 0 رو push میداد.

pe32_64
سه شنبه 26 دی 1391, 14:55 عصر
شما باید از ra استفاده کنید.
a تغییر نمی کنه.
لطفا قوانین کار باconst_cast یکبار بخونید.