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

admin2019-05-14  47

问题 请使用VC6或使用【答题】菜单打开考生文件夹pmjl下的工程projl,其中在编辑窗口内显示的主程序文件中定义有类ABC和主函数main。程序文本中位于每行“//ERROR****found****”之后的一行语句有错误,请加以改正。改正后程序的输出结果应该是:
21 23
注意:只修改每个“//ERROR****found*****”下面的一行,不要改动程序中的其他任何内容。
#include
using namespace std;
clasS ABC{
public:
//ERROR**********found**********
  ABC(){a=0 ; b=0;C=0;}
  ABC(int aa,int bb,int 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 sl=X.Sum()+Y一>Sum();
  cout<//ERROR**********found**********
  int s2=sl+W.Sum();
  cout<  return 0;
}

选项

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

解析 本题考查的是ABC类,其中涉及构造函数、成员函数和常变量私有成员。构造函数中因为要给常变量私有成员初始化,所以必须使用成员列表初始化来赋初值。只有类的指针在调用成员函数时才使用标识符“一>”。
【解题思路】(1)主要考查考生对构造函数的掌握情况,根据私有成员的定义:conat 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调用A:BC类的成员函数时要使用标识符“一>”,而不是“.”。
转载请注明原文地址:https://kaotiyun.com/show/jE8p777K
0

最新回复(0)