};
voidmain()
{Bb[2]={B(10,11),B(12,13)};
for(inti=0;i<2;i++)
__________
}
五、程序分析题(本大题共2小题,每小题5分,共10分)
1.给出下面程序输出结果。
#include
classBase
{private:
intY;
public:
Base(inty=0){Y=y;cout<<"Base("<~Base(){cout<<"~Base()\n";}
voidprint(){cout<};
classDerived:
publicBase
{private:
intZ;
public:
Derived(inty,intz):
Base(y)
{Z=z;
cout<<"Derived("<}
~Derived(){cout<<"~Derived()\n";}
voidprint()
{Base:
:
print();
cout<}
};
voidmain()
{Derivedd(10,20);
d.print();
}
2.给出下面程序输出结果。
#include
classtest
{intx;
public:
test(inti=0):
x(i){}
virtualvoidfun1()
{cout<<"test:
:
x"<};
classft:
publictest
{inty;
public:
voidfun1(){cout<<"ft:
:
y="<ft(inti=2):
test(i),y(i){}
};
voidmain()
{ftft1(3);
void(test:
:
*p)();
p=test:
:
fun1;
(ft1.*p)();
}
六、程序设计题(本大题共1小题,共10分)
1.求n(n=3)个学生的最高分和最低分及姓名,已有student类声明和main函数,完成student类的实现部分。
#include
#include
classstudent
{charname[10];
intdeg;
public:
student(charna[]="",intd=0);
char*getname();
friendintcompare(student&s1,student&s2);
intgetdeg();
};
voidmain()
{studentst[]={student("王强",74),student("李刚",68),student("张雪",84)};
inti=0,min=0,max=0;
for(i=1;i<3;i++)
{if(compare(st[max],st[i])==-1)
max=i;
if(compare(st[min],st[i])==1)
min=i;
}
cout<<"最高分:
"<"<cout<<"最低分:
"<<(*(st+min)).getdeg()<<"姓名:
"<}