我正在爲我的數據結構類編寫一個哈希表,並且我想爲我的實現添加一點語法糖。重載括號訪問和分配C++
template <typename HashedObj, typename Object>
Object & Dictionary<HashedObj, Object>::operator[](HashedObj & key)
{
return items.lookup(key);
}
,當我做類似的cout < <的dict [ 「的myKey」]這工作正常。 但是我怎樣才能使用括號進行賦值?喜歡的東西:
dict["mykey"] = "something";
不,這不是我的家庭作業(沒有雙關語意),我只是想學C++好一點的一部分。
順便說一句,你用什麼類型的'HashedObj'當你聲明你的Dictionary用於字符串鍵?像上面例子中的「mykey」一樣。 – AnT 2009-10-24 18:38:19
因爲你正在返回一個引用,賦值操作符應該按照你期望的方式工作。唯一的問題發生在lookup()找不到key時,你會怎麼做? – 2009-10-24 20:01:01
在我的測試中,我使用字符串: Dictionary dict; –
Matt
2009-10-24 20:28:49