使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使程序正确运行,并且使程序输出的结果为: 30 130 注意:错误的语句在//********error********的下面,修改该语句

admin2021-05-06  32

问题 使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使程序正确运行,并且使程序输出的结果为:
    30
    130
    注意:错误的语句在//********error********的下面,修改该语句即可。
#include
int a=10;
Class CObj
{
public:
    CObj()
    {
    a=b=0;
    }
    Void display()
    {
    //********error********
    cout<    }
    Void funC(int a)
    {
    //********error********
    a+=a;
    }
    void func2()
    {
    //********error********
    a+=a:
    }
Private:
    int a , b;
  };
  Void main()
  {
    CObj obj;
    obj.func(3);
    obj.display();
    obj.func2();
    obj.display();
}

选项

答案(1)cout<a+=a; (3)a+=::a;

解析 (1)成员函数display()打印变量a和b的值,即cout输出a和b的值,cout流中的数据是用流插入运算符“<<”顺序加入的,因此“<”不正确,因此第1个标识下应改成cout<    (2)在func(int a)中,参数a传递进来,其和成员变量a名字一样,因此第2个标识下的“a+=a”有歧义,从程序的运行结果来分析,CObj obj声明对象obj,初始化类成员变量a和b均为0,调用func函数后输出30,说明a为3,b为0,因此这里应该是成员变量与参数a的和赋给成员变量a,正确的写法是“this->a+=a:”。
    (3)func2()函数虽然没有参数,但是成员变量a和全局变量a重名,第3个标识下“a+:a”也会有歧义,分不清楚是全局变量加倍还是类成员变量加倍或者其他情况,调用func2()函数后,输出“130”,说明a为l 3,b为0,因此是成员变量与全局变量a的和赋给成员变量a,正确的写法是“a+=::a:”,“::a”表示是全局变量a。
转载请注明原文地址:https://jikaoti.com/ti/9Nh0FFFM
0

最新回复(0)