请打开考生文件夹下的解决方案文件proj1,其中在编辑窗口内显示的主程序文件中定义有类ABE和主函数main。程序文本中位于每行“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是: 21 23

admin2020-04-07  48

问题 请打开考生文件夹下的解决方案文件proj1,其中在编辑窗口内显示的主程序文件中定义有类ABE和主函数main。程序文本中位于每行“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是:
    21  23
    注意:只修改每个“//ERROR **** found ****”下面的一行,不要改动程序中的其他任何内容。
    #include<iostream>
    using namespace std;

    class ABC{
    public:
    //ERROR  *******found*******
      ABC(){a=0; b=0; c=0;}
      ABC(int aa,int bb,2nt cc);
      void Setab()  {++a,++b;}
      int Sum(){return a+b+c;}
    private:
      int a,b;
      const int c;
    };

    ABC::ABC(int aa,int bb,int cc):c(cc)  {a=aa;b=bb;}

    int main()
    {
      ABC x(1,2,3),y(4,5,6);
      ABC z,* w=&z;
      w>Setab();
    //ERROR *******found*******
      int s1=x.Sum()+y一>Sum();
      tout<<s1<<";
    //ERROR ******* found *******
      int s2=s1+w.Sum();
      cout<<s2<<end1;
      return 0;
    }

选项

答案(1)ABC():a(0),b(0),c(0){} (2)int s1=x.Sum()+y.Sum(); (3)int s2=s1+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://jikaoti.com/ti/2PA0FFFM
0

最新回复(0)