бинарный "operator/" имеет слишком много параметров
Выдаёт ошибку (бинарный "operator/" имеет слишком много параметров)
class Lamp
{
private:
float Pn, Un, U;
public:
...
float RawP() { return (U * Pn / Un); }
float operator/(Lamp a, Lamp b);
};
float operator/(Lamp a, Lamp b)
{
float tmp;
tmp = a.RawP() / b.RawP();
return tmp;
}
int main()
{
float s;
...
s = Arr[j] / Arr[k];
}
Ответы (1 шт):
Автор решения: Qwertiy
→ Ссылка
Бинарный оператор, являющийся нестатическим членом класса должен принимать только один аргумент - второй. Первым будет this.
Можно вообще выкинуть оператор из класса, тогда он потеряет доступ к приватным членам, но в твоём случае они и не используются.
Ну и чтобы выкинуть оператор из класса, но одновременно предоставить ему доступ к приватным членам, надо объявить его дружественным классу (friend).