代码修改如下,如有帮助,请采纳一下,谢谢。
#include<iostream>
#include<string>
using namespace std;
class CPerson
{
private:
string name;
char gender;//'F'代表女,'M'代表男
string number;
int age;
double salary;
public:
virtual double GetPay()=0;
virtual void Print()=0;
CPerson(string name,char gender,string number,int age, double salary)
{
this->name = name;
this->gender = gender;
this->number=number;
this->age=age;
this->salary=salary;
}
string getName(){return name;}
char getGender(){return gender;}
string getNumber(){ return number;}
int getAge(){return age;}
double getSalary(){ return salary;}
};
class CBoss:public CPerson//老板实行年薪制,一年15万;
{
private:
int a;//a代表年薪
public:
virtual double GetPay();
CBoss(string name,char gender,string number,int age, double salary ,int as):CPerson(name,gender,number,age,salary){a = as;}
virtual void Print()
{
cout<<"Boss"<<endl;
cout<<"name:"<<getName()<<endl;
cout<<"gender:"<<getGender()<<endl;
cout<<"numble:"<<getNumber()<<endl;
cout<<"age:"<<getAge()<<endl;
cout<<"salary:"<<GetPay()<<endl;
}
};
double CBoss::GetPay(){ return a;}
class CEmployee:public CPerson//雇员按月计酬,方法是基本工资+奖金;
{
private:
int b,j;//b代表基本工资,j代表奖金
public:
virtual double GetPay();
CEmployee(string name,char gender,string number,int age, double salary,int bs,int js):CPerson(name,gender,number,age,salary){b = bs; j = js;}
virtual void Print()
{
cout<<"Employee"<<endl;
cout<<"name:"<<getName()<<endl;
cout<<"gender:"<<getGender()<<endl;
cout<<"numble:"<<getNumber()<<endl;
cout<<"age:"<<getAge()<<endl;
cout<<"salary:"<<GetPay()<<endl;
}
};
double CEmployee::GetPay(){ return b+j;}
class CHourlyWorker:public CPerson//小时工按工作时间计算报酬,方法是工作小时*每小时单价;
{
private:
int h,d;//h代表工作小时,d代表每小时单价
public:
virtual double GetPay();
CHourlyWorker(string name,char gender,string number,int age, double salary,int hour,int dd):CPerson(name,gender,number,age,salary){h = hour; d = dd;};
virtual void Print()
{
cout<<"HourlyWorker"<<endl;
cout<<"name:"<<getName()<<endl;
cout<<"gender:"<<getGender()<<endl;
cout<<"numble:"<<getNumber()<<endl;
cout<<"age:"<<getAge()<<endl;
cout<<"salary:"<<GetPay()<<endl;
}
};
double CHourlyWorker::GetPay(){ return h*d;}
class CCommWorker:public CPerson//营销人员按月计酬,方法是基本工资+销售利润*5%。
{
private:
int b,p;//b代表基本工资,p代表销售利润
public:
virtual double GetPay();
CCommWorker(string name,char gender,string number,int age, double salary,int bs,int ps):CPerson(name,gender,number,age,salary){b = bs;p = ps;}
virtual void Print()
{
cout<<"Commworker"<<endl;
cout<<"name:"<<getName()<<endl;
cout<<"gender:"<<getGender()<<endl;
cout<<"numble:"<<getNumber()<<endl;
cout<<"age:"<<getAge()<<endl;
cout<<"salary:"<<GetPay()<<endl;
}
};
double CCommWorker::GetPay(){return b+p*0.05;}
void main()
{
CBoss b("hanhan",'F',"569842",26,15,15);
b.Print();
CEmployee e("fanhaidong",'M',"100625",45,0,15,12);
e.Print();
CHourlyWorker h("xiaohong",'F',"598462",19,0,5,23);
h.Print();
CCommWorker c("jinbao",'M',"4892015",18,0,24,30);
c.Print();
}
您的问题已经有小伙伴解答了,请点击【采纳】按钮,采纳帮您提供解决思路的答案,给回答的人一些鼓励哦~~
ps:开通问答VIP,享受5次/月 有问必答服务,了解详情↓↓↓
【电脑端】戳>>> https://vip.csdn.net/askvip?utm_source=1146287632
【APP 】 戳>>> https://mall.csdn.net/item/52471?utm_source=1146287632