A-A+

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

2022-08-05 21:39:24 问答库 阅读 172 次

问题详情

使用VC6打开考生文件夹下的工程test33_1,此工程包含一个源程序文件test33_1.cpp,但该程序运行有问题,请改正程序中的错误,使该程序的输出结果为:
Number=1,2,3
sum=16
源程序文件test33_1.cpp清单如下;
include <iostream.h>
class Num
{
public:
/***************** found *****************/
void Num(int a,int b, int c);
void PrintNumber();
void PrintSum();
private:
int x,y,z;
static int sum;
};
/***************** found *****************/
int sum=10;
Num::Num(int a,int b, int c)
{
x=a;
y=b;
z=c;
sum=sum+x+y+c;
}
void Num::PrintNumber()
{
cout<<"Number="<<x<<","<<y<<","<<z<<end1;
}
void Num::PrintSum()
{
cout<<"sum="<<sum<<end1;
}
void main()
{
Num m(1,2,3),*n;
n=&m;
m. PrintNumber();
/***************** found *****************/
n. PrintSum();
}请帮忙给出正确答案和分析,谢谢!

参考答案

正确答案:(1) 错误:void Num(int aint bint c);正确:Num(int aint bint c);(2) 错误:int sum=10;正确:int Num::sum=10;(3) 错误:n.PrintSum();正确:n->PrintSum();
(1) 错误:void Num(int a,int b,int c);正确:Num(int a,int b,int c);(2) 错误:int sum=10;正确:int Num::sum=10;(3) 错误:n.PrintSum();正确:n->PrintSum(); 解析:(1)函数Num为构造函数,构造函数不指定返回类型,其隐含有返回值,由系统内部使用;
(2)由于静态数据成员sum是类Num的成员,因此在初始化时必须使用作用域运算符限定其所属的类;
(3)n为指向类Num对象的指针,其访问公有成员函数需使用“->”,而不能使用“.”。

考点:工程,源程序