2012-06-19 118 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[]