使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示学生学号的类CStudentlD,但类CStudentlD的定义并不完整。 运行结果为: 学生的学号为:200805 学生名为:李伟 删除学生学号为:200

admin2020-05-14  17

问题 使用VC6打开考生文件夹下的源程序文件modi3.cpp,其中定义了用于表示学生学号的类CStudentlD,但类CStudentlD的定义并不完整。
    运行结果为:
    学生的学号为:200805
    学生名为:李伟
删除学生学号为:200805
    请按要求完成下列操作,将类CStudentID的定义补充完成:
    (1)定义class CStudentID类的私有数据成员IDvalue表示学生的学号,为long型的数据。请在注释//********1********之后添加适当的语句。
    (2)完成默认构造函数CStudentlD的定义,使CStudentID对象的默认值为:id=0,并把学生的学号赋给IDvalue,并输出“赋给学生的学号:”及学号。请在注释//********2********之后添加适当的语句。
    (3)完成默认析构函数CStudentlD的定义,使CStudentID析构时输出“删除学号:”及学号。请在注释//********3********之后添加适当的语句。
    (4)完成默认构造函数CStudentlnfo的定义。对应两个默认参数:要求定义char stName[],其默认值为“no name”,定义long stID,其默认值设为0,并使它们赋值给相应的类数据成员。请在注释//********4********之后添加适当的语句。
    注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
    1    #include
    2  #include
    3    C1ass CStudentID
    4    {
    5    //********1********定义私有数据成员
    6
    7 public:
    8    //********2********定义默认构造函数
    9
    10    {
    11    IDvalue=id;
    12    cout<<"学生的学号为: "<    13    }
    14    //********3********定义析构函数
    15
    16    {
    17    cout<<"删除学生学号为:
       "<    18    }
    19    };
    20  class CStudentInfo
    21    {
    22   private:
    23    CStudentID id;
    24    char name[20];
    25   public:
    26    //********4********定义默认构造函数完成数据成员初始化
    27
    28    {
    29    cout<<"学生名为:"<    30    strcpy(name,stName);
    31    }
    32  };
    33  void mein()
    34  {
    35    CStudentInfo st("李伟",200805);
    36    }

选项

答案(1)添加语句:long IDvalue; (2)添加语句:CStudentID(10ng id=0) (3)添加语句:~CStudentID() (4)添加语句:CStudentInfo(char stName[]="no name",long stID=O):id(stID)

解析 程序中定义了两个类CStudentID和CStudentlnfo,其中类CStudentID包含学生的学号信息的成员变量,有自定义构造函数和默认析构函数,而类CStudentlnfo不仅包含学生的学号还包括对应的姓名信息的成员变量,还实现了自定义构造函数。
    [解题思路]
    (1)第1个标识下完成CStudentID类的私有数据成员IDvalue的定义,为long型的数据,因此第1个标识下应添加“long I:Dvalue;”。
    (2)构造函数完成类成员变量的初始化,构造函数名和类名一致,该构造函数带有一个参数id,其默认值为id=0,因此第2个标识下应添加“CStudentlD(10ng。id=0)”。
    (3)析构函数也和类名一致,并且在前面加“~”以和构造函数区分,析构函数没有参数,故第3个标识下应添加“~CStudentID()”。
    (4)CStudentlnfo包含的学生学号信息保存在类CStudentID的实例中,可通过调用类CSmdentlD的自定义构造函数初始化,第4个标识下应添加“CStudentlnfo(charstName[]=”no name",long stID=0):id(stlD)”。
转载请注明原文地址:https://kaotiyun.com/show/Ig8p777K
0

最新回复(0)