У меня есть сотрудник классавозвращаемого типа перегрузка оператора + демонстрирует странное поведение
#include <iostream>
#include <string>
using namespace std;
class employee
{
public:
double operator + (employee);
employee(int);
double getSalary();
private:
double salary;
};
int main()
{
employee A(400);
employee B(800);
cout<<A+B;
employee C = A+B;
cout<<C.getSalary();
}
employee::employee(int salary)
{
this->salary = salary;
}
double employee::operator + (employee e)
{
double total;
total = e.salary + this->salary;
return total;
}
double employee::getSalary()
{
return this->salary;
}
Я перегруженный оператор + так, чтобы он складывает зарплату 2 объектов для сотрудников. Тип возврата перегруженного + оператора двойной.
Это мой вопрос
1) Почему employee C = A + B
работа, когда я перегружен оператор + для возврата двойной, а не работник, не должен ли быть ошибка компилятора ??
2) что на самом деле происходит ???