只是一個快速的語法問題。我正在寫地圖課(學校)。C++運算符[]語法
如果我定義了以下運算符重載:
template<typename Key, typename Val> class Map {...
Val* operator[](Key k);
會發生什麼事,當一個用戶寫道:
Map<int,int> myMap;
map[10] = 3;
做這樣的事情,只有將覆蓋[空]指針的臨時副本鍵k。是否有可能這樣做:
map[10] = 3;
printf("%i\n", map[10]);
具有相同的運算符過載?
所以我應該定義我的超載爲 Val&operator [](Key k);並且確保我適當地進行初始化,即使這裏沒有任何東西。 – mamidon 2009-11-02 00:04:17
這是正確的。 – 2009-11-02 00:06:24
謝謝一堆;即使不是'需要',我也必須製造物體。 – mamidon 2009-11-02 00:09:38