#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