gpt4 book ai didi

c++运算符重载看不到其他运算符

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

我有一个问题。我已将自定义 operator* 实现为成员函数。

在标题中:

class Matrix
{
public:
Matrix operator*(int arg); //(1)
...
}

Matrix operator*(int a, const Matrix& m)
{
return m * a; //(2)
}

(1) 我可以在 main.cpp 中这样做:

Matrix a = Matrix::GetRandom.....
Matrix b = a * 2;

(2) 在这一行,我遇到了一个编译器错误:

IntelliSense: no operator "*" matches these operandsnoperand types are: const Matrix * int

我该如何解决?

最佳答案

mconst,所以只能调用const 方法。使 Matrix::operator* 成为 const 成员函数:

Matrix operator*(int arg) const;

关于c++运算符重载看不到其他运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20446926/

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