就业数据资源平台
当前位置:首页 > C++语言程序设计
2012年计算机二级C++练习题:改错题8

改错题
  使用VC6打开考生文件夹下的工程kt13_1,此工程包含一个源程序文件kt13_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果为:
  5
  5
  源程序文件kt13_1.cpp清单如下:
  #include<iostream.h>
  classA{
  public:
  /*****************found*****************/
  staticintn=1;
  A(){n++;};
  ~A(){n--;}; };
  /*****************found*****************/
  intn=0;
  intmain(){
  Aa;
  Ab[3];
  A*c=newA;
  c=&a;
  /*****************found*****************/
  cout<<c.n<<endl;
  cout<<A::n<<endl;
  return0; }
【参考答案】
  (1)将static int n=1;改为:static int n;
  (2)将int n=0;改为:int A::n=0;
  (3)将cout<<c.n<<endl;改为:cout<<c->n<<endl;
【试题解析】
  (1)在类的声明中只能对静态数据成员进行引用性声明,不能进行静态数据成员初始化;
  (2)由于静态数据成员是类的成员,所以在初始化时必须限定它所属的类;
  (3)c为类的对象指针,访问类成员函数时使用符号“->”,而不能用“.”。
就业数据资源平台