起初我在頭文件中寫了一個非成員的==操作符的功能在這個風格:非會員運營商==我可以讓它成爲靜態嗎?
bool operator==(
const Node& lhs,
const Node& rhs)
{
return lhs.uid == rhs.uid;
}
但它編譯失敗的原因,它的多個定義。 我嘗試了兩種方法,它們都起作用。 1將實現移至cpp文件 2使此運算符==靜態函數。
大部分搜索結果都是關於第一個解決方案的。 但我可以使它靜態?哪一個更好?
在此先感謝〜
當你說多個定義時,代碼中是否有這個函數的其他實例?你可以發佈他們嗎? – zero298
可能重複[運算符在類外重載!](http://stackoverflow.com/questions/4121125/operator-overloading-outside-of-a-class) –
我把這個頭文件包含在其他源文件中 – Dan