我一直試圖在我的程序中使用運算符重載,但是我一直在遇到問題。運算符超載的問題
基本上,我有一個二叉搜索樹,我試圖得到它,所以如果你輸入「tree = tree + 7」之類的東西,它會將鍵值7添加爲一個節點。我一直在與代碼嘗試做到這一點:
struct addToTree {
string treeName;
int value;
string output;
string operator+(string addToTree &lhs, int addToTree &rhs) {
addToTree temp;
temp.output = lhs.treeName + to_string(rhs.value);
return temp.output;
}
};
目前,我只是試圖讓它拿樹的名稱,並添加到該值是在用戶輸入要添加到那個樹。
我目前收到一些錯誤,我不認爲我的代碼甚至接近它應該如此,如果任何人可以給我建議,告訴我我應該做什麼,那將是非常感激。
'int addToTree%rhs'?顯示你的真實代碼。您的'operator +'顯示爲返回一個'addToTree',但它顯然返回了一個'string'。這是真的嗎?還是隻是另一個錯字? – 2015-03-19 10:50:50
這應該是&rhs,但我不知道這是否更有意義,它應該返回一個字符串用於測試目的。我現在修好了。 – user3746428 2015-03-19 10:52:26
這種操作符重載幾乎總是有害的。您的操作員應該具有與標準版本相同的語義,否則您和任何後來查看您代碼的人都會遇到一些頭疼的錯誤。 「做整數做」 – TartanLlama 2015-03-19 10:53:07