单项选择题

有如下程序: #include using namespace std; class B{ public: virtual void show(){cout<<"B";} }; class D:public B{ public: void show(){cout<<"D";} }; void funl(B*ptr){ptr->show();} void fun2(13&ref){ref.show();} void fun3(13 b){b.show();} int main() { B b,*p=new D; D d; fun1(p); fun2(b); fun3(d); delete p; return 0: } 执行这个程序的输出结果是( )。

A.BBB
B.BBD
C.DBB
D.DBD