C++const_使用法

1456 ワード

const_castはC++演算子で、主に複合タイプのconstとvolatile属性を除去するために使用されます(実際に除去されていません).
変数自体のconst属性は除去できませんが、変数の値を変更するには、ポインタ(または参照)のconst属性を除去し、間接的に変更するのが一般的です.
使用法:const_cast(expression)
const_経由cast演算子は、const type*をtype*に変換し、const type&をtype&に変換することもできます.
すなわち,ソースタイプとターゲットタイプはconst属性が異なる以外は全く同じである.
#include
using namespace std;
void ConstTest1(){
    const int a = 5;
    int *p;
    p = const_cast<int*>(&a);
    (*p)++;
    cout<cout<void ConstTest2(){
int i;
cout<<"please input a integer:";
cin>>i;
const int a = i;
int &r = const_cast<int &>(a);
r++;
cout<int main(){
ConstTest1();
ConstTest2();
return 0;
}

5 6 please input a integer:7 8
常変数がconst int j=iの場合、jを直接出力すると、コンパイラは最適化できない、すなわちjの代わりにiを直接使用できない.
常変数がconst int j=5の場合、jを直接出力すると、コンパイラはjの代わりに文字定数5を直接使用するように最適化される.
に引く