示例代码
#include <iostream>
class A
{
public :
A() {}
virtual void F() { std::cout << "A::f";}
};
class B: public A
{
public:
B() {}
private:
void F() { std::cout << "B::f"; }
};
int main()
{
B b;
A * ptr = &b;
ptr->F();
return 0;
}
来自类B的方法F()
会覆盖A::F()
,尽管它在私有部分而不是公共部分。为什么我不能拥有不覆盖B::F()
的私有方法A::F()
?
如果虚拟机在不检查private/public
部分的情况下工作,也许应该引发任何警告或错误?