读书人

小疑点都来看看吧

发布时间: 2012-03-16 16:34:56 作者: rapoo

小问题,都来看看吧
#include<iostream>
using namespace std;

class B{
public:
int m_iNum;
};

void main(){
const B b1;
//b1.m_iNum=100;

B b2=const_cast<B>(b1);
b2.m_iNum=200;
}
在这个小程序中,我想利用const_cast将b1的const属性去掉,为什么会编译出错:cannot convert from 'const class B' to 'class B'?
不是说const_cast能做到这一点么?
望达人赐教

[解决办法]
去掉 const 属性,直接赋值就是了:b2=b1;
[解决办法]
invalid use of const_cast with type `B', which is not a pointer, reference, nor a pointer-to-data-member type

还有一个问题是你没有初始化B。应该类似这样。

class B
{
public:
B():m_iNum(90){}
int m_iNum;
};

读书人网 >C++

热点推荐