小编Mit*_*tch的帖子

C++ 中的多态性 - 通过指针访问函数

得到以下简单的结构:

    class Base {
    public:
        virtual void foo() { std::cout << "Base" << std::endl; }
    };
    
    class Derived1 : public Base {
    public:
        void foo() override { std::cout << "Derived1" << std::endl; }
        void boo() {}
    };
    
    class Derived2 : public Base {
    public:
        void foo() override { std::cout << "Derived2" << std::endl; }
    };
    
    int main(){
        Base* p1 = new Derived1();
        Base* p2 = new Derived2();
    
        p1->foo();
        p1->boo();
    }
Run Code Online (Sandbox Code Playgroud)

现在我的问题是:当我不希望 Derived2 的对象可以访问它时,如何访问 Derived1::boo() 函数(使用指针 p1,所以我仍然具有多态性)?

c++ polymorphism inheritance

1
推荐指数
1
解决办法
61
查看次数

标签 统计

c++ ×1

inheritance ×1

polymorphism ×1