使用vc++6.0打开考生文件夹下的源程序文件3.cpp。类People包括姓名和年龄两个字段。函数fun获得年龄比较大的人的姓名,然后输出这个姓名到屏幕。 其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。 (1)完成类的构造函数功能

admin2013-10-15  85

问题 使用vc++6.0打开考生文件夹下的源程序文件3.cpp。类People包括姓名和年龄两个字段。函数fun获得年龄比较大的人的姓名,然后输出这个姓名到屏幕。
    其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整。
(1)完成类的构造函数功能,请在注释1后添加适当的语句。
(2)完成构造函数对姓名的赋值,请在注释2后添加适当的语句。
(3)定义类的友元函数fun,请在注释3后添加适当的语句。
(4)补充函数fun的年龄比较功能,请在注释4后添加适当的语句。
注意:增加或者修改代码的位置已经用符号表示出来,请不要修改其他的程序代码。
试题程序:
#include
class People
{
public;
//* * * * * * * * 1 * * * * * * * *
{
  int i;
  for(i=0;sUserName!=0;i++)
  {m_UserName=sUserName
  }
//* * * * * * * * 2 * * * * * * * *
  m_Old=nOld;
}
private:
char m_UserName[32];
int m_Old;
//* * * * * * * * 3 * * * * * * * *
};
void fun(char*s,People&person1,People&person2)
{
//* * * * * * * * 4 * * * * * * * *
if()
{
  for(int i=0;person1.m_UserName!=0;i++)
  {
  s=person1.m_UserName
  s[i+1]=0;
  }
}
    else
    {
    for(int i=0;person2.m_UserName!=0;i++)
    {s=person2.m_UserName
     s[i+1]=0;
  }
}
}
void main()
{
char s[32];
People p1("abc",20);
People p2("def",30);
fun(s,p1,p2);
tout<return;
}

选项

答案(1)应添加“People(char*sUserName,int nOld)”。 (2)应添加“m_UserName[i]=0;”。 (3)应添加“friend void fun(char*s,People&person1,People&person2);”。 (4)将“if()”补充完整为“if(person1.m_Old)person2.m_Old)”。

解析 本题第1处要求“完成类的构造函数”。根据“class People”语句知道People为类,所以类People的构造函数名为People,根据第1处的大括弧中的语句知道函数中的参数为数组sUserName存放姓名,整型nOld存放年龄,所以补充构造函数定义为“People(char*sUserName,int nOld)”。
    第2处要求“完成构造函数对姓名的赋值”。第2处补全姓名赋值,即“m_UserName=0;”。
    第3处要求“定义类的友元函数fun”。在C++中,如果在本类以外的其他地方定义了一个函数,在类体中是用friend对该函数进行声明的,此函数称为本类的友元函数,并且能够调用本类中的成员变量。程序中的fun函数定义为trvoidfun(char*s,People&personl,People&person2)”,所以声明fun()为类People的友元函数,即这里补全“friend void fun(char*s,People&personl,People&person2);”。
    第4处要求“补充函数fun的年龄比较”。类People中年龄的变量为m_Old,根据C++中类变量的调用格式补充第4处if语句中的条件判断语句,即“if(personl.m_Old)Derson2.m_Old)”。
转载请注明原文地址:https://jikaoti.com/ti/xvXiFFFM
0

最新回复(0)