阅读以下说明和C++代码,将解答写入对应栏内。 [说明] 类Stock的定义中有三处错误,分别在代码的第04、06、10行。请补齐下述代码中的空缺(1)~(3),修改错误并给出修改后该行的完整代码,最后完善程序运行后的输出结果。 [

admin2012-12-10  39

问题 阅读以下说明和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)  

选项

答案(1) 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
转载请注明原文地址:https://jikaoti.com/ti/R5W7FFFM
0

最新回复(0)