可能重複:
Why are some operators in C++ only allowed to be overloaded as member functions?爲什麼operator()[] - > =必須是非靜態成員?
爲什麼運算符()[] - > =必須爲非靜態成員?爲什麼它不能成爲朋友?
可能重複:
Why are some operators in C++ only allowed to be overloaded as member functions?爲什麼operator()[] - > =必須是非靜態成員?
爲什麼運算符()[] - > =必須爲非靜態成員?爲什麼它不能成爲朋友?
因爲你必須在一個類的實例上調用它。以例如 - >運算符爲例。你會如何建議獲得一個指向類本身的指針?這沒有多大意義。
因爲它必須是非靜態的。簡單的設計決策。可能是因爲C++沒有類對象的概念。
是否有任何可以成爲靜態成員的運算符? – 2010-12-09 06:44:16
@jleedev:是的,+, - ,/,* ...你明白了。 – 2010-12-09 06:45:53
@jleedev:通常使插入和抽取操作符不是它們定義的類中的成員,更不用說是靜態成員。其他操作員可以做同樣的事情。 – cHao 2010-12-09 06:51:07