请打开考生文件夹下的解决方案文件proj1,其中的主程序文件main.cpp中定义有Xabc类和主函数main。在程序文本中位于每行“//ERROR******found******”下面的一行有错误,请加以更正。 更正后程序的输出为: 2

admin2020-04-10  24

问题 请打开考生文件夹下的解决方案文件proj1,其中的主程序文件main.cpp中定义有Xabc类和主函数main。在程序文本中位于每行“//ERROR******found******”下面的一行有错误,请加以更正。
    更正后程序的输出为:
    2 5 8 7 12
    34
    注意:只允许修改每个“//ERROR******found******”下面的一行语句,不允许改动程序中的其他任何内容。
      #include<iostream>
      using namespace std;
      clasS Xabc {
        int * a;int n;
        public:
           Xabc(int aa[],int nn):n(nn){//构造函数
                  //ERROR  **********found**********
                  a=int[n];
                  for(int i=0;i<n;i++)
                    a=aa
           }
         int sum(){
           int s=0;
             for(int i=0;i<n;i++)
               s+=a
            //ERROR  **********found**********
           return * s;
          }
      };
      int main(){
        int a[5]={2,5,8,7,12};
        Xabc x(a,5);
        int i;
        for(i=0;i<5;i++)
          cout<<a<<’ ’;
        cout<<endl;
        //ERROR**********found**********
        int b=sum();
        cout<<b<<endl;
        return 0;
    }

选项

答案(1)a=new int[n]; (2)retum s; (3)int b=x.sum();

解析 (1)Xabe类定义中,a是int类型的整型指针,需要动态分配一段内存,将首地址赋给a,修改为:a=new int[n];
    (2)成员函数sum的功能是求a指向的数组元素之和s,并将s返回,修改为:return s;
    (3)main函数定义数组a,并使用a构造Xabe类型的对象x,然后调用sum成员函数求得数组a的元素之和,修改为:int b=x.sum();
    【注】本题Xabc类还应该定义一个析构函数,用来释放成员a的内存,防止内存泄漏。
转载请注明原文地址:https://jikaoti.com/ti/xwA0FFFM
0

最新回复(0)