考虑以下代码:
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方法为私有方法时,为什么不调用public const方法?
换句话说,为什么在访问控制之前要进行重载解析?这很奇怪。您认为这是一致的吗?我的代码可以工作,然后添加一个方法,而我的工作代码根本无法编译。