虛函數和訪問限定符

#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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章