我对为什么这段代码编译和运行有点困惑:
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 成员函数的含义的了解存在差距。如果有人可以帮助我弥合这一差距,我将不胜感激。