c++ 学习之const_cast 去掉const属性转换
语法公式:
const_cast<目标类型>(标识符)
目标类型:指针或者引用
#include <iostream>
using namespace std;
struct A
{
/* data */
int data;
};
int main(int argc, char const *argv[])
{
const A a = {2000};
A a1 = const_cast<A&>(a);
cout << a1.data << endl;
A &a2 = const_cast<A&>(a);
a2.data = 20;
cout << a2.data << endl;
A *a3 = const_cast<A*>(&a);
a3->data = 900;
cout << a3->data << endl;
const int x = 9;
int &x1 = const_cast<int &>(x);
x1 = 900;
cout << x1 << endl;
int *x2 = const_cast<int *> (&x);
*x2 = 89;
cout << *x2<<endl;
return 0;
}
g++ main.cpp -o ./output/run
./output/run
2000
20
900
900
89