Descripción del título
Diseñe una nómina de clase para calcular el salario. Requisitos: Defina el constructor, el destructor y el constructor de copia La función de miembro output () se utiliza para generar el valor del miembro de datos del objeto. Se definen dos objetos en la función principal: el salario unitario por hora y las horas de trabajo semanales del primer objeto se ingresan con el teclado, y el segundo objeto se define como un objeto constante. Su salario unitario por hora es 1,5 veces mayor que el del primer objeto , horas de trabajo por semana Igual, da salida a la información de cada objeto.
Descripción de entrada
Una línea: salario por hora unitario, horas de trabajo semanales del primer objeto.
Descripción de salida
. Salario por hora, horas de trabajo semanales y salarios semanales pagaderos de los dos objetos.
Información sobre llamadas de función.
Muestra de entrada
25 38
Muestra de salida
Se llama Constructor !
Salario por hora: 25 horas de trabajo: 38 salarios semanales pagaderos: 950
Se llama al constructor de copias!
Salario por hora: 37.5 horas de trabajo semanales: 38 salarios semanales pagaderos: 1425 ¡
Se llama al destructor!
#include <iostream>
using namespace std;
class Payroll
{
public:
Payroll(double a, int b)
{
cout << "Constructor is called!" << endl;
SalaryPurHour = a;
WorkTime = b;
}
double GetTotalSalary()
{
TotalSalary = WorkTime * SalaryPurHour;
return TotalSalary;
}
Payroll(const Payroll &a);
void output()
{
cout << "小时工资:" << SalaryPurHour << " 周工作时数:" << WorkTime << " 周应付工资:" << GetTotalSalary() << endl;
}
~Payroll()
{
cout << "Destructor is called!" << endl;
}
private:
int WorkTime;
double SalaryPurHour;
double TotalSalary;
};
Payroll::Payroll(const Payroll &x)
{
cout << "Copy constructor is called!" << endl;
SalaryPurHour = 1.5*x.SalaryPurHour;
WorkTime = x.WorkTime;
TotalSalary = SalaryPurHour * WorkTime;
}
int main()
{
int WorkTime;
double SalaryPurHour;
cin >> SalaryPurHour;
cin >> WorkTime;
Payroll A(SalaryPurHour, WorkTime);
A.output();
Payroll B(A);
B.output();
return 0;
}
Constructor de copias
Payroll::Payroll(const Payroll &x)
{
cout << "Copy constructor is called!" << endl;
SalaryPurHour = 1.5*x.SalaryPurHour;
WorkTime = x.WorkTime;
TotalSalary = SalaryPurHour * WorkTime;
}