问题 填空题

使用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 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对象的指针,其访问公有成员函数需使用“->”,而不能使用“.”。

判断题
填空题