📄 cjj117.htm
字号:
*s){name=s;}<BR>
friend void print(student &,teacher
&);<BR>};<BR>void print(student &a,teacher
&b)<BR>{<BR>
cout<<"the student
is:"<<a.name<<endl;<BR>
cout<<"the teacher
is:"<<b.name<<endl;<BR>}<BR>void
main()<BR>{<BR> student s("Li
Hu");<BR> teacher t("Wang
Ping");<BR>
print(s,t);<BR>}<BR><BR>解:<BR>
student和teacher类共用一个友元函数的实现。<BR>所以输出为:<BR>
the student is Li
Hu<BR>
the teacher is Wan
Ping<BR><BR>--------------------------------------------------------------<BR><BR><FONT
color=#0000ff>题4.有一个学生类student,包括学生姓名、成绩,设计一个友元类,输出成绩大于等于80分以上者。<BR></FONT>解:<BR>
学生类student的disp()函数设计成友元函数。<BR>本题程序如下:<BR>#include<iostream.h><BR>#include<string.h><BR>#include<iomanip.h><BR>class
student<BR>{<BR> char
name[10];<BR> int
deg;<BR>
public:<BR>
student(char na[],int
d)<BR>
{<BR>
strcpy(name,na);<BR>
deg=d;<BR>
}<BR>
char *getname(){ return
name;}<BR>
friend void disp(student
&s)<BR>
{<BR>
if(s.deg>=80)<BR>
cout<<setw(10)<<s.name<<setw(6)<<s.deg<<endl;<BR>
}<BR>};<BR>void main()<BR>{<BR>
student
st[]={student("王华",78),student("李明",92),student("张伟",62),student("孙强",88)};<BR>
cout<<"输出结果:"<<endl;<BR>
cout<<setw(10)<<"姓名"<<setw(6)<<"成绩"<<endl;<BR>
for(int
i=0;i<4;i++)<BR>
disp(st[i]);<BR>}<BR><BR>本程序的执行结果如下:<BR>输出结果:<BR>
姓名
成绩<BR>
李明
92<BR>
孙强
88<BR><BR><BR>--------------------------------------------------------------<BR><BR><FONT
color=#0000ff>题5.有一个向量类Vector,包括一个点的坐标位置x和y,设计两个友元函数,实现两个向量的加法和减法的运算</FONT><BR>解:<BR>本题程序如下:<BR>#include<iostream.h><BR>class
Vector<BR>{<BR> int
x,y;<BR>
public:<BR>
Vector(){}<BR>
Vector(int i,int
j){x=i;y=j;}<BR>
void
disp()<BR>
{<BR>
cout<<"("<<x<<","<<y<<")";<BR>
}<BR>
friend Vector add(Vector &v1,Vector
&v2)<BR>
{<BR>
Vector
v;<BR>
v.x=v1.x+v2.x;<BR>
v.y=v1.y+v2.y;<BR>
return
v;<BR>
}<BR>
friend Vector sub(Vector &v1,Vector
&v2)<BR>
{<BR>
Vector
v;<BR>
v.x=v1.x-v2.x;<BR>
v.y=v1.y-v2.y;<BR>
return
v;<BR>
}<BR>};<BR>void main()<BR>{<BR>
Vector v1(10,20),v2(4,5),v3;<BR>
v3=add(v1,v2);<BR>
cout<<"输出结果:"<<endl;<BR>
cout<<" ";
v1.disp();cout<<"+";v2.disp();<BR>
cout<<"="; v3.disp();
cout<<endl;<BR>
v3=sub(v1,v2);<BR> cout<<"
"; v1.disp();
cout<<"-";v2.disp();<BR>
cout<<"=";v3.disp();
cout<<endl;<BR>}<BR><BR>本程序的执行结果如下:<BR>输出结果:<BR>
(10,20)+(4,5)=(14,25)<BR>
(10,20)-(4,5)=(6,15)<BR><BR><BR></TD>
</TR>
</TBODY>
</TABLE>
</TD>
</TR>
<TR>
<TD height=35 width="100%">
<DIV align=center></DIV>
</TD>
</TR>
</TBODY>
</TABLE>
</TD></TR></TBODY>
</TABLE>
</TD></TR></TBODY>
</TABLE>
</TD></TR></TBODY>
</TABLE>
<TABLE align=center border=0 cellPadding=0 cellSpacing=0 width=750>
<TBODY>
<TR>
<TD bgColor=#c1c1c1 height=1></TD>
</TR>
</TBODY>
</TABLE>
<TABLE align=center border=1 cellPadding=0 cellSpacing=1
style="BORDER-COLLAPSE: collapse" width=550>
<TBODY>
<td align=center>
<div align="center">
<p><a href=mailto:jjsun36@sohu.com ><span class="body14black">mailto:jjsun36@sohu.com</span></a><span class="body12red">
热线电话:0523-4864559</span></p>
</div>
</td>
</TBODY>
</TABLE>
</BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -