我可以在 C++ 中定义一个接受多个参数的数组运算符吗?我试过这样:
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];
}
但我收到此错误:
error C2804 binary operator '[' has too many parameters
最佳答案
在 C++23 之前,您不能重载 operator[]
以接受多个参数。作为一种解决方法,您可以重载 operator()
。 (参见 C++ FAQ 中的 How do I create a subscript operator for a Matrix class?。)
来自 C++23,如(已删除)answer 中所述由 cigien ,可以将多个下标参数传递给 operator[]直接地。看到这个demo来自 cppreference 页面。
关于C++ [] 具有多个参数的数组运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1936399/