我已經爲我創建的數據結構重載了[]運算符。我想在數據結構的另一個函數中使用[]運算符,以便將[index + 1]的值賦給[index]。我將如何做到這一點?在類實現中使用[],C++
我已經試過:
- 這 - > [指數]
- *本[指數]
- &這個[指數] - [指數]
我已經爲我創建的數據結構重載了[]運算符。我想在數據結構的另一個函數中使用[]運算符,以便將[index + 1]的值賦給[index]。我將如何做到這一點?在類實現中使用[],C++
我已經試過:
只是包裝*this
插入括號內:
(*this)[index]
另一種方式應調用操作的功能:
this->operator[](index)
您的答案似乎適用於檢索,但不適用於編輯數據結構的實際內容。例如,在將(* this)[50]設置爲100之後,數據結構仍會返回(* this)[50]的原始值。 –
這是您的實施中的錯誤。我打賭你沒有返回一個左值引用,而是返回prvalue – pat
@CameronTylerCassidy:那麼值得檢查'[]'運算符的實現。應該有兩個,一個返回lvaue的引用和一個返回的rvalue的const引用。可能是這種情況,一個返回引用並不真正返回對結構中對象的引用。 –
只是要清楚:你要撥打運營商'[]'在類的內部? – Rakete1111
是的。最重要的是,我想要執行erase(),就像在stl向量中一樣,但對於不同的數據結構。 –