}
};
B&B:
:
operator=(B&rhs)
{
if(this==&rhs)return*this;
if(--pa->use==0)deletepa;
++rhs->use;
pa=rhs.pa;
return*this;
}
intmain(){
Bb1
(1),b2(b1),b3(3);
b1.Display();
b2.Display();
b3.Display();
b3=b1;
b1.Display();
b3.Display();
return0;
}
data=1,use=2
data=1,use=2
data=3,use=1
data=1,use=3
data=1,use=3
六、程序设计题(本大题共1小题,每小题10分,共10分)
55.已知一个student类,包括学姓名,成绩和等级,不含任何成员函数.process为学生信息处理类.
classstudent{
charname[10];
intdeg;
charlevel[7];
friendclassprocess:
public:
student(charna[],intd){strcpy(name,na);deg=d;}
};
classprocess{
public:
voidtrans(students[]){…}//根据学生成绩计算学生等级(优大于89分,良大于79分,中大于69分,及格大于59分,不及格小于60分).
voiddisp(students[]){...}//根据成绩降序打印所有学生信息
};
要求实现process类中的两个函数:
#include
#include
classstudent{
charname[10];
intdeg;
charlevel[7];
friendclassprocess;
public:
student(charna[],intd){strcpy(name,na);deg=d;}
};
constintN=3;//学生个数
classprocess{
public:
voidtrans(students[]){
for(inti=0;iif(s[i].deg>89)strcpy(s[i].level,"优");
elseif(s[i].deg>79)strcpy(s[i].level,"良");
elseif(s[i].deg>69)strcpy(s[i].level,"中");
elseif(s[i].deg>59)strcpy(s[i].level,"及格");
elsestrcpy(s[i].level,"不及格");
}
}//根据学生成绩计算学生等级(优大于89分,良大于79分,中大于69分,及格大于59分,不及格小于60分).
voiddisp(students[]){
studenttemp("",0);
inti,j;
for(i=0;ifor(j=0;jif(s[j].deg>s[j+1].deg){
temp=s[j];
s[j]=s[j+1];
s[j+1]=temp;
}
}
for(i=N-1;i>=0;i--){
cout<<"姓名:
"<
"<
"<
}
}//根据成绩降序打印所有学生信息
};
//测试主函数
intmain(){
studentstu[3]={student("小李",78),student("小唐",65),student("小丽",86)};
processp;
p.trans(stu);
p.disp(stu);
}
二、填空题
21、公有
22、cin>>a;
23、消息传递
24、对象名作为实参,形参用对象引用名
25、循环
26、template
27、直接
28、size()
29、ios类
30、myFile.close();
31、3.1
32、不可访问
33、输入输出文件流
34、cin
35、pop_back()
36、多态性
37、类
38、#define
39、setw()
40、float
三、改错题