下面程序输出结果是什么?
#include<iostream> using namespace std; class A{ public: A(char *s) { cout<<s<<endl; } ~A(){} }; class B:virtual public A { public: B(char *s1,char*s2):A(s1){ cout<<s2<<endl; } }; class C:virtual public A { public: C(char *s1,char*s2):A(s1){ cout<<s2<<endl; } }; class D:public B,public C { public: D(char *s1,char *s2,char *s3,char *s4):B(s1,s2),C(s1,s3),A(s1) { cout<<s4<<endl; } }; int main() { D *p=new D("class A","class B","class C","class D"); delete p; return 0; }