一、语法
const_cast<type>(expression)
二、作用:实现const修饰的指针或引用的去const化。
三、代码
#include<iostream>
using namespace std;
void test01(){
int a;
const int& ra = a;
a = 100;
cout << a << endl;
const_cast<int&>(ra) = 200;
cout << ra << endl;
cout << a << endl;
const int* pa = &a;
*const_cast<int*>(pa) = 300;
cout << *pa << endl;
cout << a << endl;
}
void test02(){
const int a = 100;
const int& ra = a;
const_cast<int&>(ra) = 200;
cout << "a:" << a << endl;
cout << "ra:" << ra << endl;
struct Data{
int a;
};
const Data d = {10};
const Data& rd = d;
const_cast<Data&>(rd).a = 20;
cout << "d.a=" << d.a << endl;
cout << "rd.a=" << rd.a << endl;
}
int main(){
test01();
cout << "----------------" << endl;
test02();
return 0;
}