下面程序的运行结果是( )。
#include<iostream>
using namespace std;
class A
public:
virtual~A()
cout<<"call A::~A()"<<endl;
;
class B:public A
char * p;
public:
B(int i)
p=new char[i];
~B()
delete(p);
cout<<"call B::~B()";
;
void main()
A * a=new B(8);
delete a;
A.call B::~B()call A::~A()
B.call B::~B()
C.call A::~A()
D.call A::~A()call B::~B()