欢迎来到天天文库
浏览记录
ID:60849374
大小:1.03 MB
页数:15页
时间:2020-12-23
《C++友元习题复习课程.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、…………………………………………………………最新精品资料推荐……………………………………………………01.分析以下程序的执行结果 #include classSample { intn; public: Sample(inti){n=i;} friendintadd(Sample&s1,Sample&s2); }; intadd(Sample&s1,Sample&s2) { returns1.n+s2.n; } voidmain() { Samples1(10),s2(20); cout<2、< classB; classA { inti; public: intset(B&); intget(){returni;} A(intx){i=x;} }; classB { inti; p3、ublic: B(intx){i=x;} friendA;…………………………………………………………最新精品资料推荐……………………………………………………15…………………………………………………………最新精品资料推荐…………………………………………………… }; intA::set(B&b)//由于使用了类B的定义,故本函数的定义应放在类B定义之后 { returni=b.i; } voidmain() { Aa(1); Bb(2); cout<4、dl; } 解: 本题说明友元类的使用方法。这里将类A设置为类B的友元类,因此,类A的所有成员函数均为类B的友元函数。通过调用a.set(b)将b对象的i值赋给a对象的i值。 所以输出为:1,2 ------------------------------------------------- 03.有一个学生类student,包括学生姓名、成绩,设计一个友元函数,比较两个学生成绩的高低,并求出最高分和最低分的学生。 解: #include #include classstudent 5、{ charname[10]; intdeg; public: student(charna[],intd) { strcpy(name,na); deg=d; } char*getname(){returnname;} friendintcompare(student&s1,student&s2) { if(s1.deg>s2.deg) return1; elseif(s1.deg==s2.deg) return0; elsereturn-1;…………………………………………………………最新精品资料推荐………………………………………6、……………15…………………………………………………………最新精品资料推荐…………………………………………………… } }; voidmain() { studentst[]={student("王华",78),student("李明",92),student("张伟",62),student("孙强",88)}; inti,min=0,max=0; for(i=1;i<4;i++) { if(compare(st[max],st[i])==-1) max=i; elseif(compare(st[i],st[min])==1) mi7、n=i; } cout<<"输出结果:"<8、70~79:中;60!69:及格;小于60:不及格。 解: #include #include #include classstudent { charn
2、< classB; classA { inti; public: intset(B&); intget(){returni;} A(intx){i=x;} }; classB { inti; p
3、ublic: B(intx){i=x;} friendA;…………………………………………………………最新精品资料推荐……………………………………………………15…………………………………………………………最新精品资料推荐…………………………………………………… }; intA::set(B&b)//由于使用了类B的定义,故本函数的定义应放在类B定义之后 { returni=b.i; } voidmain() { Aa(1); Bb(2); cout<4、dl; } 解: 本题说明友元类的使用方法。这里将类A设置为类B的友元类,因此,类A的所有成员函数均为类B的友元函数。通过调用a.set(b)将b对象的i值赋给a对象的i值。 所以输出为:1,2 ------------------------------------------------- 03.有一个学生类student,包括学生姓名、成绩,设计一个友元函数,比较两个学生成绩的高低,并求出最高分和最低分的学生。 解: #include #include classstudent 5、{ charname[10]; intdeg; public: student(charna[],intd) { strcpy(name,na); deg=d; } char*getname(){returnname;} friendintcompare(student&s1,student&s2) { if(s1.deg>s2.deg) return1; elseif(s1.deg==s2.deg) return0; elsereturn-1;…………………………………………………………最新精品资料推荐………………………………………6、……………15…………………………………………………………最新精品资料推荐…………………………………………………… } }; voidmain() { studentst[]={student("王华",78),student("李明",92),student("张伟",62),student("孙强",88)}; inti,min=0,max=0; for(i=1;i<4;i++) { if(compare(st[max],st[i])==-1) max=i; elseif(compare(st[i],st[min])==1) mi7、n=i; } cout<<"输出结果:"<8、70~79:中;60!69:及格;小于60:不及格。 解: #include #include #include classstudent { charn
4、dl; } 解: 本题说明友元类的使用方法。这里将类A设置为类B的友元类,因此,类A的所有成员函数均为类B的友元函数。通过调用a.set(b)将b对象的i值赋给a对象的i值。 所以输出为:1,2 ------------------------------------------------- 03.有一个学生类student,包括学生姓名、成绩,设计一个友元函数,比较两个学生成绩的高低,并求出最高分和最低分的学生。 解: #include #include classstudent
5、{ charname[10]; intdeg; public: student(charna[],intd) { strcpy(name,na); deg=d; } char*getname(){returnname;} friendintcompare(student&s1,student&s2) { if(s1.deg>s2.deg) return1; elseif(s1.deg==s2.deg) return0; elsereturn-1;…………………………………………………………最新精品资料推荐………………………………………
6、……………15…………………………………………………………最新精品资料推荐…………………………………………………… } }; voidmain() { studentst[]={student("王华",78),student("李明",92),student("张伟",62),student("孙强",88)}; inti,min=0,max=0; for(i=1;i<4;i++) { if(compare(st[max],st[i])==-1) max=i; elseif(compare(st[i],st[min])==1) mi
7、n=i; } cout<<"输出结果:"<8、70~79:中;60!69:及格;小于60:不及格。 解: #include #include #include classstudent { charn
8、70~79:中;60!69:及格;小于60:不及格。 解: #include #include #include classstudent { charn
此文档下载收益归作者所有