庄生一梦韩国漫画:谁来帮我解答一下这个C++的题啊谢谢啦~~~~

来源:百度文库 编辑:高校问答 时间:2024/05/09 10:02:33
.给出如下程序运行结果, 并写上必要的注释和分析产生该运行结果的原因。
(1)
#include <iostream.h>
#include <stdlib.h>
class A{
public:
virtual void print(){
cout<<"In class A."<<endl;
}
virtual ~A(){};
};
class B:public A{
public:
void print(){
cout<<"In class B."<<endl;
}
};
class C:public A{
public:
void print(){
cout<<"In class C."<<endl;
}
};
class D:public B{
public:
void print(){
cout<<"In class D."<<endl;
}
};
void main()
{
A * p[]={new A(), new B(),
new C(),new D() };
int i,j;
for ( i=0; i<20; i++){
j=rand()%4;
p[j]->print();
}
for( i=0; i<4; i++)
delete p[i];
}
运行结果:

实际上机运行一下,再从结果来分析不就行了