请打开考生文件夹下的解决方案文件proj1,其中在编辑窗口内显示的主程序文件中定义有类AAA和主函数main。程序文本中位于每行“//ERROR ****found****”下面的一行有错误,请加以改正。改正后程序的输出结果应该是:
sum=60
注意:只修改每个“//ERROR ****found****”下面的一行,不要改动程序中的其他任何内容。
#include<iostream>
using namespace std;
class AAA {
int a[10];int n;
//ERROR ********found********
private:
AAA(int aa[], int nn): n
(nn){
//ERROR ********found********
for(int i=0;i<n; i++)aa[i]=a[i];
}
int Geta(int i) {return a
[i];}
};
int main(){
int a[6]={2,5,8,10,15,20);
AAA x(a,6);
int sum=0 ;
//ERROR ********found********
for(int i=0;i<6;i++)
sum+=x.a[i];
cout<<"sum=”<<sum<<endl ;
return 0;
}
【正确答案】(1)public:
(2)for(int i=0;i<n;i++)}a[i]=aa[i];
(3)fori(int i=0:i<6:i++) sum+=x.Geta(i):
【答案解析】(1)构造函数肯定是公有成员,所以应使用public。
(2)主要考查考生对赋值语句的掌握,因为数组a是私有成员,因此a应该在左边,而数组aa是形参,要赋值给数组a。
(3)主要考察考生对成员函数调用的掌握,数组a是类的私有成员,因此不能被main函数直接调用,要通过成员函数Geta来州用数组a。