gpt4 book ai didi

c++ - 如何在另一边创建重载 +

转载 作者:行者123 更新时间:2023-11-27 23:40:27 26 4
gpt4 key购买 nike

我有矩阵类和重载运算符 + 与其他矩阵和标量一起工作。当我尝试像 mat2=mat+3; 这样使用它时可以正常工作,但是如果我更改标量和矩阵 mat2=3+mat;它说“二进制表达式的无效操作数('int'和 Matrix<3, 4>')”(3,4 是该矩阵中的行和列)。我怎么理解我没有重载 + 对于这种情况,但我找不到如何重载它

Matrix operator+(const T &a) {
Matrix<row, col, T> result;
for (int i = 0; i < row; ++i) {
for (int j = 0; j < col; ++j) {
result.elements[i][j] = elements[i][j] + a;
}

}
return result;
}

最佳答案

该功能可能在您的类(class)中。但是如何向 int 添加重载呢? int 甚至 类吗?是时候尖叫和 panic 了吗?

深吸一口气,看着difference between global operator and member operator过载。您实际上可以在全局范围内为 int 重载,这可能看起来像:

template <typename T>
Matrix<T> operator+(const T &a, Matrix<T> &m) { return m + a; }

关于c++ - 如何在另一边创建重载 +,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55503183/

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