分析下面程序的运行结果
#include <iostream.h>
class B
{
public:
B(){}
B(int i){b=i;}
virtual void virfun()
{
cout<<"B::virfun() called.\n";
}
private:
int b;
};
class D:public B
{
public:
D(){}
D(int i,int j):B(i){d=j;}
private:
int d;
void virfun()
{
cout<<"D::virfun() called.\n";
}
};
void fun(B *obj)
{
obj->virfun();
}
void main()
{
D *pd=new D;
fun(pd);
}