请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,其中在编辑窗口内显示的主程序文件中定义有类ABC和主函数main。程序文本中位于每行“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果

admin2016-08-19  26

问题 请使用VC6或使用【答题】菜单打开考生文件夹proj1下的工程proj1,其中在编辑窗口内显示的主程序文件中定义有类ABC和主函数main。程序文本中位于每行“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是:
    21 23
注意:只修改每个“//ERROR****found****”下面的一行,不要改动程序中的其他任何内容。
1  #include
2  using namespace std;
3
4  class ABC{
5   public:
6    //ERROR  **********found**********
7    ABC(){a=0;b:0;c=0;}
8    ABC(int as,int bb,int cc);
9    void Setab(){++a,++b;}
10    int Sum(){return a+b+c;}
11    private:
12    int a,b;
13    const int c;
14    };
15
16  ABC::ABC(int aa,int bb,int cc):c(cc){a=as;b:bb;)
17
18  int main()
19    {
20    ABC x(1,2,3),y(4,5,6);
21    ABC z,*w=&z;
22    w->Setab();
23    //ERROR  **********found**********
24    int s1=x.Sum()+y->Sum();
25    cout<26    //ERROR**********found**********
27    int s2=s1+w.Sum();
28    cout<29    return 0;
30    }

选项

答案(1)ABC():a(0),b(0),c(0){} (2)int s1=x.Sum()+y.Sum(); (3)int s2=sl+w->Sum():

解析 (1)主要考查考生对构造函数的掌握情况,根据私有成员的定义:const int c;可知,c为常变量,因此构造函数必须使用成员列表初始化来给C赋初始值。
    (2)主要考查考生对类的指针的掌握情况,根据主函数的第一条语句:ABC x(1,2,3),y(4,5,6);可知,x和y都是ABC类,但不是指针,因此它们调用ABC类的成员函数要使用标识符“.”,而不是“->”。
    (3)主要考查考生对类的指针的掌握情况,根据主函数的第二条语句:ABC z,*w=&z;可知,w是ABC类的指针,指向z,因此w调用ABC类的成员函数时要使用标识符“->”,而不是“.”。
转载请注明原文地址:https://kaotiyun.com/show/oZNp777K
0

最新回复(0)