#include <iostream>
using namespace std;
class B
{
public:
virtual void f()
{
cout << "B::f()" << endl;
}
};
class D : public B
{
private:
virtual void f()
{
cout << "D::f()" << endl;
}
};
int main()
{
B *pb = new D;
pb->f();
return 0;
}
注意在D中的函数f()的访问级别是private,此段代码仍然可以成功编译,运行。输出结果:D::f()
这说明类成员的存取权限是编译时期的。
祥见:见《ISO-IEC - 14882-2003》(C++标准2003版),11.6.1