A-A+

使用VC6打开考生文件夹下的工程test28_1 此工程包含一个源程序文件test28_1.

2022-08-05 20:34:04 问答库 阅读 171 次

问题详情

使用VC6打开考生文件夹下的工程test28_1,此工程包含一个源程序文件test28_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果为:
5
5
源程序文件test28_1.cpp清单如下:
include <iostream.h>
class A{
public:
/***************** found *****************
static int n=1;
A(){n++;};
~A() (n--;};
};
/***************** found *****************
int n=0;
int main() {
A a;
A b[3];
A *c=new A;
c=&a;
/***************** found *****************
cout<<c.n<<end1;
cout<<A::n<<end1;
return 0;
}请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:(1) 错误:static int n=1;正确:static int n;(2) 错误:int n=0;正确:int A::n=0;(3) 错误:cout<<c.n<<end1;正确:cout<<c->n<<end1;
(1) 错误:static int n=1;正确:static int n;(2) 错误:int n=0;正确:int A::n=0;(3) 错误:cout<<c.n<<end1;正确:cout<<c->n<<end1; 解析:(1)在类的声明中只能对静态数据成员进行引用性声明,不能进行静态数据成员的初始化:
(2)由于静态数据成员是类的成员,所以在初始化时必须限定它所属的类:
(3)c为类的对象指针,访问类成员函数时使用符号“->”,而不能用“.”。

考点:工程,源程序