C 中的多参数数组运算符 ?
在 C 中,可以重载运算符以为内置运算符提供自定义行为,例如[]。然而,在 C 23 之前,重载 [] 来接受多个参数是不可能的。
C 23 之前的有限支持
尝试定义多参数 []运算符将导致编译器错误,如示例代码所示:
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 之前的解决方法
作为一种解决方法,可以重载 () 运算符:
T& operator()(const int i, const int j, const int k) { return m_cells[k*m_resSqr+j*m_res+i]; }
C 23 中的支持
从 C 23 开始,语言包括对多参数 [] 运算符的支持。因此,前面显示的代码将是有效的,并且允许将多个下标参数直接传递给 [] 运算符。
以上是C 如何处理多参数数组运算符?的详细内容。更多信息请关注PHP中文网其他相关文章!