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
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.