结论:在子类声明为private的虚函数,通过父类的引用仍然可以访问该函数。
我们先看一段代码:
#include<iostream>
using namespace std;
class A
{
public:
virtual void f() { cout << "af" << endl; }
};
class B : public A
{
private:
virtual void f() { cout << "bf" << endl; }
virtual void h() { cout << "bh" << endl; }
};
int main()
{
B i;
A & j = i;
j.f();
system("pause");
return 0;
}
运行结果:
可见我们的结论是正确的。
个人解释:
对于访问的控制权限,是编译器强加于程序员,使我们的程序更加符合oo的规范。对于运行期间并不存在所谓的访问控制权限(我们只要得到了函数的指针就可以为(wei)所(suo)欲为。而虚函数属于动态联编&#