#include<iostream>
using namespace std;
class Employee{
public:
virtual double getSal()=0;
};
class FullTimeEmployee: public Employee{
public:
double baseSal;
double bonus;
double getSal() override{
return baseSal+bonus;
}
};
class PartTimeEmployee: public Employee{
public:
double hrs;
double rate;
double getSal() override{
return hrs*rate;
}
};
void determineDiscount(Employee *e){
if(e->getSal() >= 20000){
cout<<"Discount is 5%\n";
}
else{
cout<<"Discount is 7%\n";
}
}
int main(){
FullTimeEmployee fe;
fe.baseSal=10000;
fe.bonus=5000;
determineDiscount(&fe);
PartTimeEmployee pe;
pe.hrs=40;
pe.rate=501;
determineDiscount(&pe);
return 0;
}
I2luY2x1ZGU8aW9zdHJlYW0+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNsYXNzIEVtcGxveWVlewpwdWJsaWM6CiAgICB2aXJ0dWFsIGRvdWJsZSBnZXRTYWwoKT0wOwp9OwoKY2xhc3MgRnVsbFRpbWVFbXBsb3llZTogcHVibGljIEVtcGxveWVlewogICAgcHVibGljOgogICAgZG91YmxlIGJhc2VTYWw7CiAgICBkb3VibGUgYm9udXM7CiAgICAKICAgIGRvdWJsZSBnZXRTYWwoKSBvdmVycmlkZXsKICAgICAgICByZXR1cm4gYmFzZVNhbCtib251czsKICAgIH0KfTsKCmNsYXNzIFBhcnRUaW1lRW1wbG95ZWU6IHB1YmxpYyBFbXBsb3llZXsKICAgIHB1YmxpYzoKICAgIGRvdWJsZSBocnM7CiAgICBkb3VibGUgcmF0ZTsKICAgIAogICAgZG91YmxlIGdldFNhbCgpIG92ZXJyaWRlewogICAgICAgIHJldHVybiBocnMqcmF0ZTsKICAgIH0KfTsKCnZvaWQgZGV0ZXJtaW5lRGlzY291bnQoRW1wbG95ZWUgKmUpewogICAgaWYoZS0+Z2V0U2FsKCkgPj0gMjAwMDApewogICAgICAgIGNvdXQ8PCJEaXNjb3VudCBpcyA1JVxuIjsKICAgIH0KICAgIGVsc2V7CiAgICAgICAgY291dDw8IkRpc2NvdW50IGlzIDclXG4iOwogICAgfQp9CmludCBtYWluKCl7CiAgICBGdWxsVGltZUVtcGxveWVlIGZlOwogICAgZmUuYmFzZVNhbD0xMDAwMDsKICAgIGZlLmJvbnVzPTUwMDA7CiAgICAKICAgIGRldGVybWluZURpc2NvdW50KCZmZSk7CiAgICAKICAgIFBhcnRUaW1lRW1wbG95ZWUgcGU7CiAgICBwZS5ocnM9NDA7CiAgICBwZS5yYXRlPTUwMTsKICAgIAogICAgZGV0ZXJtaW5lRGlzY291bnQoJnBlKTsKICAgIAogICAgcmV0dXJuIDA7Cn0=