C++ [] 具有多个参数的数组运算符?

标签 c++ arrays operators operator-keyword

我可以在 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/

相关文章:

arrays - 将颜色数组转换为 float 数组

arrays - 在 Swift 中从文本文件加载数值数组

c++ - 跟踪/系统调用 "Print Screen"进程

javascript - 将变量从数组传递到函数中

c++ - VS Code C++ 程序在调试时不显示任何输出

java - "..."在 Java 中被使用?

c++ - std::ostream_iterator 未找到运算符<<

php - Javascript - If 条件由 "&&"分隔(需要建议)

c++ - 在qt中的gstreamer视频上覆盖小部件

c++ - 为什么我的共享库在使用 CMake 时链接不正确?