-----------------------------------------------------apperception,见字如面。-----------------------------------------------------

浅谈const_cast

用法:const_cast<type>(expression)

去除const限定

method:

#include<iostream>
using namespace std;
void ConstTest(){
    int i;
    cout<<"please input a integer:";
    cin>>i;
    const int p=i;
    int &r=const_cast<int &>(p);
    r++;
    cout<<r<<p<<endl;
    
}
int main(){
    ConstTest();
    return 0;
}

 不能说是真正的去除

当存着变量的时候通过上述方法可以实现去除const限定

然而

#include<iostream>
using namespace std;
void ConstTest(){
    
    const int p=2;
    int &r=const_cast<int &>(p);
    r++;
    cout<<r<<p<<endl;
    
}
int main(){
    ConstTest();
    return 0;
}

 此时会发现结果是3和2

故:const_cast是一种C++运算符,主要是用来去除复合类型中const和volatile属性(没有真正去除)。

posted @ 2017-04-24 15:00  apperception  阅读(210)  评论(0)    收藏  举报