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

admin2015-07-20  29

问题 使用VC6打开考生文件夹下的源程序文件modi l.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;
};
VCid mein()
{
    cobj obj ;
    obj.func(3);
    obj.di splay();
    obj.func2();
    obj.display();
}

选项

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

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

最新回复(0)