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