CLASE EMPLEADO (Herencia y Polimorfismo) #include <iostream> #include <stdlib.h> using namespace std; class Empleado { private: int _intHorasTrabajadas; double _dblSueldoPorHora; public: Empleado(int, double); void HorasTrabajadas(); void SueldoPorHora(); //metodos set void set_intHorasTrabajadas(int HorasTrabajadas) { _intHorasTrabajadas = HorasTrabajadas; } void set_dblSueldoPorHora(double SueldoPorHora) { _dblSueldoPorHora = SueldoPorHora; } //constructores con get int get_intHorasTrabajadas() { return _intHorasTrabajadas; } double get_dblSueldoPorHora() { return _dblSueldoPorHora; } virtual void CalcularSalario(); }; //clases class EmpleadoSinHorasExtras : public Empleado { private: public: EmpleadoSinHorasExtras(int,double); void CalcularSalario(); }; class EmpleadoConHorasExtras : public Empleado { private: public: EmpleadoConHorasExtras(int,double); void CalcularSalario(); }; class EmpleadoConHorasTriples : public Empleado { private: public: EmpleadoConHorasTriples(int,double); void CalcularSalario(); }; //Constructores Empleado::Empleado(int intHorasTrabajadas, double dblSueldoPorHora) { _intHorasTrabajadas = intHorasTrabajadas; _dblSueldoPorHora = dblSueldoPorHora; } EmpleadoSinHorasExtras::EmpleadoSinHorasExtras(int intHorasTrabajadas, double dblSueldoPorHora) : Empleado(intHorasTrabajadas, dblSueldoPorHora) { } EmpleadoConHorasExtras::EmpleadoConHorasExtras(int intHorasTrabajadas, double dblSueldoPorHora) : Empleado(intHorasTrabajadas, dblSueldoPorHora) { } EmpleadoConHorasTriples::EmpleadoConHorasTriples(int intHorasTrabajadas, double dblSueldoPorHora) : Empleado(intHorasTrabajadas, dblSueldoPorHora) { } //Metodo CalcularSalario void Empleado::CalcularSalario() { int TotalSueldo; TotalSueldo=_intHorasTrabajadas*_dblSueldoPorHora; cout<<"$"<<TotalSueldo<<endl; } void EmpleadoSinHorasExtras::CalcularSalario() { cout<<"*****************************"<<endl; cout<<" SALARIOS DE EMPLEADOS"<<endl; cout<<"*****************************"<<endl; cout<<"El salario sin horas extras es: "<<endl; Empleado::CalcularSalario(); } void EmpleadoConHorasExtras::CalcularSalario() { cout<<"******************************"<<endl; cout<<"El salario con horas extras es: "<<endl; Empleado::CalcularSalario(); cout<<"******************************"<<endl; } void EmpleadoConHorasTriples::CalcularSalario() { cout<<"El salario con horas triples es: "<<endl; Empleado::CalcularSalario(); cout<<"******************************"<<endl; } int main() { Empleado *empleados[2]; empleados[0] = new EmpleadoSinHorasExtras(24,25); empleados[1] = new EmpleadoConHorasExtras(15,50); empleados[2] = new EmpleadoConHorasTriples(17,75); empleados[0]->CalcularSalario(); empleados[1]->CalcularSalario(); empleados[2]->CalcularSalario(); system("pause"); return 0; } CAPTURAS