虚函数与动态绑定 — 计算机选择题
题目
阅读以下 C++ 代码:
#include <iostream>
using namespace std;
struct B {
B() { f(); }
virtual void f() { cout << 'B'; }
virtual ~B() { f(); }
};
struct D : B {
D() { f(); }
void f() override { cout << 'D'; }
~D() override { f(); }
};
int main() {
B* p = new D;
p->f();
delete p;
}
程序运行后输出的是( )。
A. BDDDB B. BDDDD C. DDDDB D. BBDDB