为什么在const函数的成员指针上调用非const函数合法?

// Example program
using namespace std;

class FOOIMPL {
 public:
  void fooimpl() {}
};

class FOO {
 public:
  void foo() const { fooimpl_->fooimpl(); }
private:
  FOOIMPL* fooimpl_;
};

int main()
{
  FOO foo;
  foo.foo();
}

我了解这符合规范,因为没有将fooimpl_声明为FOOIMPL* const fooimpl_;

但是我想知道,为什么规范中允许常量函数完全在成员变量上调用非常量函数?将此错误化为不是合理吗?

nanyun1 回答:为什么在const函数的成员指针上调用非const函数合法?

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/2681338.html

大家都在问