14052. [GESP202609 六级 C++] 第 3 题

[GESP202609 六级 C++] 第 3 题

下列代码执行后的输出顺序是(  )。

class Base {
    public:
    Base() {
        cout << "B ";
    }
    virtual ~Base() {
        cout << "~B ";
    }
};

class Derived : public Base {
    public:
    Derived() {
        cout << "D ";
    }
    ~Derived() {
        cout << "~D ";
    }
};

int main() {
    Base *p = new Derived();
    delete p;
    return 0;
}

{{ select(1) }}

  • B D ~B ~D

  • D B ~D ~B

  • B D ~D ~B

  • B D ~B