#include<iostream>
using namespace std;
class Employee
{
public:
virtual int salary()=0;
//virtual int bonus()=0;
};
class Manager : public Employee
{
public:
virtual int salary()
{
cout<<"Manager salary"<<endl;
return 0;
}
};
class Programmer : public Employee
{
public:
virtual int salary()
{
cout<<" Programmer salary"<<endl;
return 0;
}
virtual int bonus()
{
cout<<"Programmer bonus"<<endl;
return 0;
}
};
class MyCompany
{
public:
void payroll(Employee *pe);
//
};
void MyCompany::payroll(Employee *pe)
{
//do something
Programmer *pm = dynamic_cast<Programmer *>(pe);
pm->bonus();
}
int main()
{
MyCompany my;
Employee *pe = new Programmer;
my.payroll(pe);
return 0;
}
using namespace std;
class Employee
{
public:
virtual int salary()=0;
//virtual int bonus()=0;
};
class Manager : public Employee
{
public:
virtual int salary()
{
cout<<"Manager salary"<<endl;
return 0;
}
};
class Programmer : public Employee
{
public:
virtual int salary()
{
cout<<" Programmer salary"<<endl;
return 0;
}
virtual int bonus()
{
cout<<"Programmer bonus"<<endl;
return 0;
}
};
class MyCompany
{
public:
void payroll(Employee *pe);
//
};
void MyCompany::payroll(Employee *pe)
{
//do something
Programmer *pm = dynamic_cast<Programmer *>(pe);
pm->bonus();
}
int main()
{
MyCompany my;
Employee *pe = new Programmer;
my.payroll(pe);
return 0;
}