2012-06-19 91 views
0

可能重複:
Operator[][] overloadC++雙下標運算符重載

我看着在互聯網上卻找不到一個明確的回答這個問題,所以我在這裏。

我知道:operator[][]()不是一個有效的運算符重載,但它是一種重載[] []運算符(例如在vector<vector<typename>>上使用)的方法。

我需要這個,因爲我在做一種包裝類的包含載體的載體,而且我也喜歡

回答

7

是的,但它取決於operator []返回類型。您可以返回一個本身支持operator []的類型。

比方說:

struct Matrix 
{ 
    vector<vector<int> > x; 
    vector<int>& operator[] (int i) 
    { 
     return x[i]; 
    } 
}; 

因爲x[i]回報vector,您可以再次使用[]因爲vectoroperator[]