Experimento C ++ 03 (02) Clase de nómina

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;
	
}

Supongo que te gusta

Origin blog.csdn.net/weixin_44179485/article/details/105754186
Recomendado
Clasificación