请使用VC6或使用【答题】菜单打开考生文件夹prog1下的工程progl,该工程中包含程序文件main.cpp,其中有Salary(“工资”)类和主函数main的定义。程序中位于每个“//ERROR****found****”之后的一行语句行有错误,请加以

admin2016-08-19  30

问题 请使用VC6或使用【答题】菜单打开考生文件夹prog1下的工程progl,该工程中包含程序文件main.cpp,其中有Salary(“工资”)类和主函数main的定义。程序中位于每个“//ERROR****found****”之后的一行语句行有错误,请加以改正。改正后程序的输出结果应为:
  应发合计:3500应扣合计:67.5实发工资:3432.5
  注意:只修改每个“//ERROR****found****”下的那一行,不要改动程序中的其他内容。
1   #include
2   using namespace std;
3   class Salary{
4   public:
5   Salary(const char*id,double the_base,double the_bonus,double the_tax)
6  //ERROR  ********found********
7    :the_base(base),the_bonus(bo-nus),the_tax(tax)
8    {
9    staff_id=new char[strlen(id)+1];
10    strcpy(staff_id,id);
11    }
12   //ERROR ********found********
13  ~Salary(){delete*staff_id;}
14   double getGrossPay()const{return base+bonus;}//返回应发项合计
15   double getNetPay()const{return get-GrossPay()-tax;}//返回实发工资额private:
16   char*staff_id;  //职工号
17   double base;  //基本工资
18  double bonus;  //奖金
19   double tax;  //代扣个人所得税
20   };
21   int main(){
22    Salary pay("888888",3000.0,500.0,67.50);
23    cout<<"应发合计:"<24   cout<<"应扣合计:"<25   //ERROR  ********found********
26   cout<<"实发工资:"<27   return 0;
28  }

选项

答案(1):base(the_base),bonus(the_bonus),tax(the_tax) (2)~Salary(){delete[]staff_id;} (3)cout<<"实发工资:"<
解析 (1)主要考查考生对构造函数的掌握情况,构造函数的成员初始列表要把形参放在括号内。
    (2)主要考查考生对析构函数的掌握情况,析构函数使用delete释放指针,delete后要跟标识符“[]”。
    (3)主要考查考生对成员函数调用的掌握情况,调用类的成员函数使用标识符“.”,而不是作用域符“::”。
转载请注明原文地址:https://kaotiyun.com/show/g4Np777K
0

最新回复(0)