gpt4 book ai didi

c++ - () = 类中的运算符重载

转载 作者:行者123 更新时间:2023-11-30 00:38:50 25 4
gpt4 key购买 nike

我正在为加法、减法、乘法、逆运算等所有操作构建一个 Matrix 类。我重载了简单的运算符,例如 + - () *。但我正在尝试通过 ()设置行和列值。

一个例子就是这样

Matrix(1,1) = 10;

假设第 1 行第 1 列将设置为 10。

我的加法重载示例是这样的

friend Matrix operator +(Matrix&, Matrix&);

我怎样才能做到这一点?

谢谢!

最佳答案

您的矩阵应提供元素访问器,例如通过 operator():

template <typename T>
class Matrix
{
public:
T & operator()(size_t i, size_t j) { return buf[i * NCols + j]; } // Example
T const & operator()(size_t i, size_t j) const { /* same */ }

// ...
};

然后你可以说:

Matrix<bool> m(20, 20);

m(12, 15) = false;
m(8, 19) = m(1, 2) = true;
return m(0, 0);

关于c++ - () = 类中的运算符重载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9779085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com