虚函数和访问限定符

#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

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