如果我有一个类成员函数:
bar* foo::get_value() const
{
return &_value;
}
编译器会报错
无法使用类型为const bar *的rvalue初始化bar *类型的变量
在该类中,_value不是const
。
如果我有以下函数:
bar* foo::get_value() const
{
return const_cast<bar *>(&_value);
}
它完全正常。
我认为声明成员函数为常量意味着承诺不修改类的内部内容,但是在const
成员函数中,操作符&
似乎返回一个常量指针。这是为什么?