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

admin2020-12-21  34

问题 请打开考生文件夹下的解决方案文件proj1。其中的主程序文件main.cpp中定义有Xabc类和主函数main。在程序文本中位于每行“//ERROR******found******”下面的一行有错误,请加以更正。
    更正后程序的输出为:
    2 5 8 7 12
    34
    注意:只允许修改每个‘‘//ERROR******found******”下面的一行语句,不允许改动程序中的其他任何内容。
   #include
    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)return s; (3)int b=x.sum();

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

最新回复(0)