// 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_;
但是我想知道,为什么规范中允许常量函数完全在成员变量上调用非常量函数?将此错误化为不是合理吗?