一道c++继承相关程序阅读题


#include<iostream>
#include<cstring>
class Base
{
    char* base;
public:
    Base()
    {
        base = new char[2];
        strcpy(base, "1");
        cout << "2";
    }
    ~Base()
    {
        delete[]base;
        cout << "3";
    }
    void Print()
    {
        cout << base;
    }
};

class Derived :public Base
{
    char* derived;
public:
    Derived()
    {
        derived = new char[2];
        strcpy(derived, "4");
        cout <<"5";

    }
    ~Derived()
    {
        delete[]derived;
        cout << "6";
    }

    void Print()
    {
        cout << derived;
    }
    
};

int main()
{
    Base* ptr = new Derived;
    ptr->Print();
    delete ptr;
    return 0;
}

答案是2513
ptr->Print(); 这里调用的为什么是基类中的函数呢?(输出的是1)
麻烦各位看看 谢谢!!

虚函数才是动态绑定。基类的print定义成虚函数

virtual