#include #include using namespace std ;

class Employee { private: string name ; int beginYear ; public: Employee(string value1 = "CPP", int value2 = 2022) : name(value1), beginYear(value2) {} int getBeginYear(void) { return beginYear ; } string getName(void) { return name ; } double getBasicWage(int currentYear) { return 60000 + (currentYear - beginYear + 1) * 1000 ; } virtual double getPrize(void) = 0 ; };

class Saleman : public Employee { private: double deductRate ; double personAmount ; public: Saleman(string value1 = "CPP", int value2 = 2022, double value3 = 0.1, double value4 = 0.0) : Employee(value1, value2), deductRate(value3), personAmount(value4) {} double getDeductRate(void) { return deductRate ; } double getPersonAmount(void) { return personAmount ; } double getPrize(void) { return deductRate * personAmount ; } };

class Manager : public Employee { private: double totalDeductRate ; double totalAmount ; public: Manager(string value1 = "CPP", int value2 = 2022, double value5 = 0.02, double value6 = 0.0) : Employee(value1, value2), totalDeductRate(value5), totalAmount(value6) {} double getTotalDeductRate(void) { return totalDeductRate ; } double getTotalAmount(void) { return totalAmount ; } double getPrize(void) { return totalDeductRate * totalAmount ; } };

int main(void) { string value1 ; int value2 ; double value3 , value4 ; cin>>value1>>value2>>value3>>value4;
Saleman s( value1 , value2 , value3 , value4 ); //Saleman对象 cin>>value1>>value2>>value3>>value4; Manager m( value1 , value2 , value3 , value4 ); //Manager对象 Employee *e=&s; cout<getName( )<<"2022年的实发工资为"<getPrize( )+e->getBasicWage(2022) <<endl; //输出Saleman对象的实发工资 e=&m; cout<getName( )<<"2022年的实发工资为"<getPrize( )+e->getBasicWage(2022) <<endl; //输出Manager对象的实发工资 return 0; }

C++ 员工类继承:销售员和经理类的设计与实现

原文地址: https://www.cveoy.top/t/topic/osJw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录