我可以在 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
原文由 genesys 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 C++23 之前,您不能重载
operator[]
以接受多个参数。作为一种解决方法,您可以重载operator()
。 (请参阅 如何为 Matrix 类创建下标运算符? 来自 C++ 常见问题解答。)从 C++23 开始,如 cigien 的(已删除) 答案 中所述,多个下标参数可以直接传递给 operator[] 。从 cppreference 页面查看这个 演示。