基类指针(或引用)可以调用派生类的private虚函数吗?

class Base {
public:
    virtual void print() {
        std::cout << " Base print" << std::endl;
    }
};

class Derived : public Base {
private:
    virtual void print() {
        std::cout << " Derived print" << std::endl;
    }
};


int main() {
    Base *b = new Derived();
    b->print();

    return 0;
}

派生类中虚函数的访问权限是在编译阶段由基类确定的,在运行阶段不再检查访问权限,所以,虚函数的访问权限与派生类就没关系了。

发布了199 篇原创文章 · 获赞 149 · 访问量 38万+

猜你喜欢

转载自blog.csdn.net/zgaoq/article/details/103803936