const_cast标准转换运算符

#include <iostream>
using namespace std;

class A
{
public:
    A()
    {
        a=0;
    }
public:
    int a;
};
void main()
{
    const A *pa=new A; //指针指向类
    A *pa1=const_cast<A*>(pa);  //常量指针被转化为非常量指针,转换后指针指向原来的变量(即转换后的指针地址不变)
    pa1->a=200;              //转换后指针指向原来的对象  pa2为转换后的指针 指向A类
    cout<<pa->a<<endl<<pa1->a<<endl;  //pca1和pa2指向同一个类
    
    const int b=100;   //指针指向基本类型
    int *pb=const_cast<int *>(&b); //非常量指针ia 指向int型ica  
    *pb=200;
    cout<<*pb<<endl<<b<<endl;
    getchar();
}

 

posted @ 2018-06-15 10:02  小雨滴答  阅读(135)  评论(0编辑  收藏  举报