C++ [] array operator with multiple arguments?

genesys picture genesys · Dec 20, 2009 · Viewed 30.8k times · Source

Can I define in C++ an array operator that takes multiple arguments? I tried it like this:

const T& operator[](const int i, const int j, const int k) const{ 
    return m_cells[k*m_resSqr+j*m_res+i];
}

T& operator[](const int i, const int j, const int k){ 
    return m_cells[k*m_resSqr+j*m_res+i];       
}

But I'm getting this error:

error C2804 binary operator '[' has too many parameters

Answer

jamesdlin picture jamesdlin · Dec 20, 2009

Nope, you can't overload operator[] to accept multiple arguments. You instead can overload operator(). See How do I create a subscript operator for a Matrix class? from the C++ FAQ.