c++ - 两个方括号重载

标签 c++ indexing operator-overloading brackets

我正在用 c++ 编写一个矩阵类,并试图重载一些运算符,如 = 和 >> 和 << 等。

我无法为矩阵类重载运算符 [][]。 如果我有一个像 M1 这样的类矩阵对象,那么我可以使用这种方式为每个元素赋值:

M1[1][2]=5;

int X;

X=M1[4][5];

最佳答案

只需重载 operator[] 并使其返回指向矩阵相应行或列的指针。由于指针支持 [] 下标,因此可以通过'double-square'符号 [][] 进行访问。

您还可以使用两个参数重载 operator()

关于c++ - 两个方括号重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5637197/

相关文章:

c++ - operator<< 的全局重载不起作用,为什么?

c# - 为什么比较运算符不会自动重载 IComparable?

c++ - 如何在 C++ 中实现以逗号分隔的初始化,例如 Eigen 中的初始化?

函数上的 C++ extern 关键字。为什么不只包含头文件?

Python查找列表中最大值的索引

c++ - kdevelop #include

python - 如何找到 numpy 数组中更大的最近值?

Mysql查询优化

c++ - spoj STRHH,无法找到错误。为什么开头多了 "endl"

基于其他元素大小的 C++ union 元素大小