小编Ars*_*shi的帖子

请告诉我为什么虚函数在以下代码中不起作用

当我运行此代码时,由于后期绑定,输出如预期的“这是派生 2”,因为我们在基类中使用了虚函数。

    #include <iostream>
    using namespace std;

    class  Base {
        public :
        virtual void show() {
            cout<<"This is base class"<<endl;
        }
    };
    class  Derived : public Base {
        public:
        void show() {
            cout<<"This is derived class"<<endl;
        }
    };

    class D2 : public Derived {
        public :
        void show () {
            cout<<"This is derived 2"<<endl;
        }
    };

    int main() {
        Base *obj = new D2();
        obj->show();
        return 0;
    }
Run Code Online (Sandbox Code Playgroud)

同样,如果我将代码更改为

        #include <iostream>
        using namespace std;

        class  Base {
            public :
             void …
Run Code Online (Sandbox Code Playgroud)

c++ oop polymorphism virtual-functions

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

标签 统计

c++ ×1

oop ×1

polymorphism ×1

virtual-functions ×1