我正在创建一个 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);
假设 T
是 Matrix2d
的模板参数并且参数都是 std::size_t
类型。
关于C++ 为赋值重载 operator(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34197879/