Я пытаюсь понять, оператор перегрузку в C++, и я побежал в этот кусок кода:Член против оператора, не являющихся членов перегрузки
class Imaginary {
double re,im ;
public:
Imaginary (double r, double i=0) : re(r), im(i) {}
Imaginary operator - (void) const; // member
Imaginary operator + (const Imaginary& x) const; // member
friend Imaginary operator + (double a, const Imaginary& b); // non-member ?
};
, который должен показать использование non-member
перегрузки. Но я не понимаю, как он не является членом, когда он объявлен внутри класса? Или это зависит от количества параметров, так как +
является двоичной операцией, поэтому с двумя параметрами он считается нечленом и с 1 членом?
О теперь все ясно, я просто не понимаю, как 'friend' на самом деле работает .. Спасибо! –