【发布时间】:2014-05-06 15:39:13
【问题描述】:
如果我有类成员函数:
bar* foo::get_value() const
{
return &_value;
}
编译器会抱怨
无法用 const bar * 类型的右值初始化 bar * 类型的变量
_value 不是类中的const。
如果我有这个功能:
bar* foo::get_value() const
{
return const_cast<bar *>(&_value);
}
效果很好。
我以为声明成员函数常量意味着你承诺不修改类的内部内容,但操作& 似乎在const 成员函数中返回了一个常量指针。这是为什么呢?
【问题讨论】:
-
你不能修改类的内部内容,因为它在 const 方法中是常量