(4)完成Company类成员函数voidCompany::print()的定义,使其以"_ispaid_RMBforonemonth"的格式输出公司内所有员工的月薪信息。请在注释“//**4**”之后添加适当的语句。
注意:除在指定位置添加语句之外,请不要改动程序中的其他内容。
源程序清单如下:
#include<iostream.h>
#include<string.h>
classCEmployee
{ public:
voidputname(charn[50]){strcpy(name,n);}
voidgetname(charn[50]){strcpy(n,name);}
voidputpay(doubled){pay=d;}
doublegetpay(){returnpay;}
private:
//**1** };
classCompany
{ private:
CEmployee*emp;
intnum;
public:
Company(intn);
voidadd(intcode,charname[50],doublepay);
voidprint(); };
Company::Company(intn)
{ //**2** }
voidCompany::add(intcode,charname[50],doublepay)
{ //**3** }
voidCompany::print()
{ //**4**
for(inti=0;i<num;i++)
{ (emp+i)->getname(c);
money=(emp+i)->getpay();
cout<<c<<"ispaid"<<money<<
"RMBforonemonth"<<endl; } }
voidmain()
{ Companycom(2);
com.add(0,"Jack",200);
com.add(1,"Lee",300);
com.print(); }
【参考答案】
(1)char name[50];
double pay;
(2)num=n;
emp=new CEmployee[num];
(3)(emp+code)->putname(name);
(emp+code)->putpay(pay);
(4)char c[50];
double money;
【试题解析】
本题考查类成员的定义、类成员函数的定义与调用、对象数组的使用。注意指针和动态申请空间new的使用方法。使用指针调用成员应该用"->"符号,new的返回值是指针类型的。