使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整,使得程序输出21到屏幕。完成以下功能: (1)增加静态私有变量m_Number,类型为int,请在注释//********1**

admin2019-06-05  36

问题 使用VC6打开考生文件夹下的源程序文件modi3.cpp。其中定义的类并不完整,按要求完成下列操作,将类的定义补充完整,使得程序输出21到屏幕。完成以下功能:
    (1)增加静态私有变量m_Number,类型为int,请在注释//********1********后添加适当的语句。
    (2)增加静态变量m_Number并初始化为10,请在注释//********2********后添加适当的语句。
    (3)完成静态函数get的定义,请在注释//********3********后添加适当的语句。
    (4)完成对象obj对静态函数get的调用,使得输出21到屏幕上,请在注释//********4********后添加适当的语句。
    注意:增加代码,或者修改代码的位置已经用符号表示出来。请不要修改其他的程序代码。
1  #include<iostream.h>
2  class TestClass
3  {
4    //********1********
5
6    int m_Other;
7  public:
8    TestClass(int i)
9    {
10    m_Other=i;
11    }
12    //********3********
13
14    {
15    return m_Number+obj->m_Other;
16    }
17  };
18  //********2********
19
20  int main()
21  {
22    TestClass obj(11);
23    //********4********
24    cout<<<<end1;
25    return 0;
26  }

选项

答案(1)添加语句:static int m Number; (2)添加语句:int TestClass::m_Number=10; (3)添加语句:static int get(TestClass*obj) (4)将“cout<<<<end1;”补充完整为:cout<<obj.get(&obj)<<end1;

解析 本题中程序的功能是利用get函数计算对象成员数值的和。在VC环境下打开程序,根据题干给出的几条功能要求,对程序中给出注释下的内容逐个补全或修改。从已定源程序的main主函数开始入手,可以看出程序通过调用类TestClass和get()成员函数实现各种输出操作。
    (1)题目1要求“增加静态私有变量m_Number,类型为int,”。静态变量的定义格式为:static类型变量名称,本题只要在类的private区域定义int型的静态变量m_Number,即第1个标识下添加“static int m_Number;”。
    (2)题目2要求“增加静态变量m_Number并初始化为10”。第2个标识的位置在类TestClass的外部,在C++中,使用“::”作用域运算符声明定义的变量属于哪个类。由题干知道,m_Number属于类TestClass,根据C++的作用域运算符,在第2个标识下添加“int TestClass::m_Number=10:”。
    (3)题目3要求“完成静态函数get的定义”。根据第三个标识下的“return m_Number+obj->m_Other;”语句知道,get函数具有形参obj指针。obj调用m_Other变量,说明它是TestClass类型,并且静态函数的定义只要在其前面声明static就可以了,即第3个标识下添加“static int get(TestClass*obj)”。
    (4)题目4要求“完成对象obj对静态函数.鳓的调用,使得输出21到屏幕上”。程序中第4个标识下的“cout<<end1;”语句缺少输出值,题目中要求对象对静态函数get的调用,对象对成员函数的调用格式为:对象名.成员函数,即“cout<<obj.get(&@,bj)<<end1;”。
转载请注明原文地址:https://kaotiyun.com/show/g18p777K
0

最新回复(0)