【发布时间】:2011-04-27 14:59:36
【问题描述】:
我有点困惑为什么这段代码会编译和运行:
class A
{
private:
int* b;
public:
A() : b((int*)0xffffffff) {}
int* get_b() const {return this->b;}
};
int main()
{
A a;
int *b = a.get_b();
cout<<std::hex<<b<<endl;
return 0;
}
运行此代码的输出也是FFFFFFFF... 出乎我的意料。 this->b 不应该返回 const int*,因为它在 const 成员函数中?因此return 行应该生成编译器转换错误以尝试将const int* 转换为int*
显然,我对 const 成员函数的含义的了解存在差距。 如果有人能帮助我弥合这一差距,我将不胜感激。
【问题讨论】:
标签: c++ constants this member-functions