class CFruit {
private:
string m_name;
public:
string getName() const;
CFruit(string name = "NoName");
};
的水果沙拉是在類CFruitSalad表示:操作符重載錯誤「二進制‘+’:沒有操作員發現這需要左手操作數」
class CFruitSalad {
//Overloaded Operators
friend ostream& operator <<(ostream& out, const CFruitSalad& f);
friend CFruitSalad operator +(const CFruit& f1, const CFruit& f2);
private:
string m_fruitsalad;
public:
CFruitSalad(string content = "");
string getName() const;
};
現在,當我用寫:
CFruit f1("Apple");
CFruit f2("Orange");
CFruit f3 ("Banana");
CFruitSalad fs;
fs = f1 + f2 + f3; //this line generates the error
cout << "Content: " << fs << endl;
當編譯時收到以下錯誤的程序: 錯誤C2678:二進制「+」:沒有操作員發現它採用類型「CFruitSalad」 的左邊的操作數(或沒有可接受的轉換)
爲什麼會發生此錯誤以及如何解決?
改變第一參數的類型。 –