const_cast的使用_c++課程學習
阿新 • • 發佈:2017-08-04
erro 指向 amp 改變 nbsp err log 課程 ast
#if 0 const char *p; //常量指針:只能改變指針的指向,不能通過指針改變值,常用來做形參 char *const p; //指針常量:只能通過指針改變值,不能改變指針的指向 const int *const p; //常量指針常量 值和指針的指向都不能改變 #endif int ivalue = 100; const int *cpi = &ivalue; //*cpi = 200; //不能通過指針改變值 //第1種:將常量指針轉換為非常量指針 int *pi = const_cast<int*>(cpi); *pi = 200; cout << *pi <<endl; //第2種:將非常量指針轉換為常量指針 const int *cpi2 = const_cast<const int *>(pi); cout << *cpi2 <<endl; int *const intpc = &ivalue; int value2; //intpc = &value2; //error:不能改變指針常量的指向 //ivalue = const_cast<int>(intpc);//error: 不能將指針變量轉換為一般變量 const int VALUE = 200; //int value3 = const_cast<int>(VALUE); //error: 不能將常量轉換為一般變量 //-------- int value4 = 300; //const int civ = const_cast<const int>(value4); //error: 不能將一般變量轉換為常量
const_cast的使用_c++課程學習