问题 填空题

阅读以下说明和C++代码,将解答写入对应栏内。 [说明] 类Stock的定义中有三处错误,分别在代码的第04、06、10行。请补齐下述代码中的空缺(1)~(3),修改错误并给出修改后该行的完整代码,最后完善程序运行后的输出结果。 [C++程序] 01 #include<iostream.h> 02 using namespace std; 03 class Stock{ 04 protected: 05 Stock(){shares=0; share_val=0.0;Output();} 06 Stock(int n=0,double pr=3.5): (1) {//初始化shares值为n 07 share_val=pr; 08 Output(); 09 }; 10 void~Stock(){}; 11 void Output()(cout<<shares<<’;’<<share val<<endl;} 12 public: 13 //成员函数 14 private: 15 //成员变量 16 int shares; 17 double share_val; 18 }; 19 20 void main(){ //构造三个Stock对象a,b,C 21 Stock a(1); 22 Stock b; 23 Stock C;Stock(); 24 //其他代码省略,且代码无输出 25 } 程序运行后的输出结果为: 1:3.5 (2) (3)

答案

参考答案:shares(n)

解析:04代码行修改结果:public: 06代码行修改结果:Stock(int n,double pr=3.5):shares(n){ 10代码行修改结果:~Stock(){} (2) 0:0 (3) 0:0 本题考查的是用C++程序编程。 根据程序中的注释,要求初始化shars的值为n,因此根据初始化语法应为“shares(n)”;第四行定义了构造函数的访问控制为protected,但构造函数应该是公共的,所以第四行应该更改为“public”:第六行的构造函数定义了默认值,这样构造一个对象的时候可以填写不同参数,但这个构造函数会和stock()的无参构造函数混淆,所以,不能够带有默认值,可以将带有默认参数的构造函数更改为:“Stock(int n,double pr==3.5)”或者“Stock(int n,double pr)”。函数的析构函数不能够有任何的返回值,所以第十行应为“~Stock(){}”:运行程序后,程序的输出结果为:1:3.5 0:0 0:0

填空题
单项选择题 A1/A2型题