首页 > 后端开发 > C++ > 正文

C 如何处理多参数数组运算符?

Linda Hamilton
发布: 2024-11-19 11:12:02
原创
299 人浏览过

How Does C   Handle Multi-Argument Array Operators?

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板