#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