我正在嘗試爲讀取和寫入操作重載'[]'操作符。我已經創造了他們這樣的:爲特定的讀寫操作重載下標操作符
V operator[] (K key) const; //Read
V& operator[] (K key); //Write
但是,只有「寫」是從被稱爲以下兩個:
foo["test"] = "bar"; //Correct, will use 'write'
cout << foo["test"]; //Incorrect, will use 'write'
,這是什麼原因,是有可能的解決方案?
同樣的問題沒有幫助,在這裏找到:C++: Overloading the [ ] operator for read and write access
雖然,提出的解決方案並沒有如預期,並且仍然只寫超載被訪問工作。
爲什麼沒另一個問題有幫助嗎?看起來對我完全一樣的問題。 –
'const V&operator [](K key)const;'而不是'V operator [](K key)const;' – drescherjm
這是同樣的問題,但沒有幫助,因爲只有寫入仍然被訪問 – Daniel