为什么不是DBD呢?
fun1和fun2分别用指针和引用作为参数,传递的实际是子类D对象,所以具有多态性,实际调用的是D类的showfun3用基类作为值参,传递的也是基类对象,所以只会调用基类的show
new D是初始化p,此时会执行D的构造函数,b和d未初始化,所以遵循调用时初始化的原则调用哪个就执行哪一个的构造函数,所以俺代码顺序就是D,D,B,第一个D是初始化p的,第二个D是构造d的,B是构造b的