我想了解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'實際工作。謝謝! –