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

admin2018-10-23  29

问题 使用VC6打开考生文件夹下的源程序文件modi1.cpp,该程序运行时有错,请改正其中的错误,使程序正常运行,并且使程序输出的结果为:
    a=7,b=0
    a=8,b=10
    注意:错误的语句在//******error******的下面,修改该语句即可。
1  #include<iostream.h>
2  class CObj
4  {
4   public:
5    //******error*******
6    friend void func(CObj&,int,int);
7    void display()
8    {
9    //******error******
10    cout<<’’a=’’<<a<¨,b=¨<<<<b<<end1;
11    }
12  private:
13    int a,b;
14  };
15void func(CObj& obj,int t)
16  {
17    obj.a=t;
18    obj.b=0;
19  }
20  void func(CObj& obj,int t,int j)
21  {
22    obj.a=t;
23    obj.b=j;
24  }
25  void main()
26  {
27    //******error******
28    CObj obj1
29    func(obj1,7);
30    obj1.display();
31    func(obj1,8,10);
32    obj1.display();
33  }

选项

答案(1)添加语句:friend void func(CObj&,int); (2)cout<<’’a=’’<<a<<’’,b=’’<<b<<end1; (3)CObj obj1;

解析 程序中定义了类CObj,其有两个成员变量a和b,通过友元函数func()可改变a和b的值,display()成员函数显示a和b的值。
    (1)标识1处是声明一个友元函数,友元函数是在类声明中由关键字Mend修饰的非成员函数,由friend void func(CObj&,int,int)可知,函数func()是CODj类的友元,由程序后面的具体实现可知该函数重载了,已经声明了友元函数friend void func(CObj&,int,int),另外一个友元函数func(CObj& obj,int t)没有声明,因此第1个标识下应添加“friend void func(CObj&,int);”。
    (2)display()函数打印类成员变量a和b的值,cout流中的数据是用流插入运算符“<<”顺序加入的,因此“<<<<”不正确,第2个标识下应改为“cout<<’’a=’’<<a<<’’,b=’’<<b<<end1;”。
    (3)标识3处是声明类对象,对象声明格式为:<类名><对象名>(<参数表>);,对象声明语句是一个完整的语句,应该以“;”结尾,因此第3个标识下应改为“CObj obj1;”。
转载请注明原文地址:https://kaotiyun.com/show/V5Ap777K
0

最新回复(0)