C++ 为赋值重载 operator()

标签 c++ operator-overloading

我正在创建一个 Matrix 类,我想覆盖 operator() 以便我可以将数字分配到矩阵中的特定位置,如下所示:

int a[6] = { 1, 2, 3, 4, 5, 6 };
Matrix2d<int> blah(2, 2, a);
blah(2, 2) = 7;

现在不工作的是第 3 行,我怎样才能正确重载 () 运算符以使其工作? (如果有办法的话)矩阵包含一维数组,因此必须将值设置在正确的位置。

最佳答案

只返回对元素的引用:

T& operator() (std::size_t x, std::size_t y);

假设 TMatrix2d 的模板参数并且参数都是 std::size_t 类型。

关于C++ 为赋值重载 operator(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34197879/

相关文章:

c++ - 立即在排序位置放置一个值

c++ - 在 C++ 中覆盖 OpenGL 的纹理包装器

c++ - Microsoft 重载 << 运算符示例会引发链接错误

c++ - 通过隐式转换为字符串流式传输对象时重载解析失败

c++ - operator[] 歧义消解

c++ - OpenMP 任务和数据环境

c++ - 如何将映射值直接放入 unordered_map 中?

c++ - "used as non-type template parameter"是否使函数模板隐式实例化?

java - 附加到已经运行的 JVM

c++ - 添加数组类型自动扣除