struct A
{
void foo() const
{
std::cout << "const" << std::endl;
}
private:
void foo()
{
std::cout << "non - const" << std::endl;
}
};
int main()
{
A a;
a.foo();
}
编译器错误是:
错误:'void A::foo()' 是私有的。
但是当我删除私有的函数时,它就可以工作了。为什么当非const函数是私有的时候,公共的const成员函数没有被调用呢?
换句话说,为什么重载解析在访问控制之前?这很奇怪。你认为这是一致的吗?我的代码本来可以工作,然后我添加了一个成员函数,我的工作代码完全无法编译。