A-A+

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

2022-08-06 00:36:05 问答库 阅读 173 次

问题详情

使用VC6打开考生文件夹下的工程test6_1,此工程包含一个源程序文件test6_1.cpp,但该程序运行有问题,请改正程序中的错误,使程序的输出结果如下:
Constructor2
Constructor1
i=0
i=10
Destructor
源程序文件test6_1.cpp清单如下:
include<iostream.h>
class CSample
{
int i;
public;
CSample(){cout<<"Constructorl"<<endl;i=0;)
CSample(int val){cout<<"Constructor2"<<endl;i=val;}
~CSample()(cout<<"Destructor"<<endl;)
void disp();
};
/**********found********/
void disp()
{
cout<<"i=”<<i<<endl;
}
void main()
{
CSample *a,b(10);
/**********found*********/
a->disp();
/**********found*********/
b->disp();
}请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:(1)错误:void disp()正确:void CSample::disp()(2)错误:a->disp();   正确:a=new CSample;   a->disp();(3)错误:b->disp();正确:b.disp();
(1)错误:void disp()正确:void CSample::disp()(2)错误:a->disp();   正确:a=new CSample;   a->disp();(3)错误:b->disp();正确:b.disp(); 解析:(1)主要考查考生对于类的成员函数定义格式的熟练掌握,对于类体外函数的实现,应该使用作用域符“::”,按照返回值类型 类名::函数名(参数列表)的形式进行说明;
(2)主要考查考生对于动态存储分配的掌握,根据前面的定义,a是一个指针类型的变量,指向一个对象,但是并没有被初始化,此时a中的数据无任何意义,应该使用动态存储分配new生成一个新的对象,并将返回的指针赋值给a;
(3)主要考查对象指针与对象在调用成员函数时格式的不同,b是一个对象变量,使用b调用成员函数应该用“.”运算符。

考点:工程,源程序