C++ 重载运算符时更改操作数顺序

标签 c++

我的问题是 Ax = B 的形式,其中 A 是一个方阵,x B 是 vector 。我定义了一个 Matrix 类,并试图重载正斜杠运算符,以便 B/A 产生 x。

我的重载函数的第一行如下:

vector<double> Class_A_Matrix::operator/(vector<double> B_Vector)

我的代码可以工作,但前提是运算符两边的操作数顺序是 A/B。如何调整我的代码,以便我可以进行 B/A?

最佳答案

定义并实现一个非成员

Class_A_Matrix operator/(const vector<double> &, const Class_A_Matrix &);

关于C++ 重载运算符时更改操作数顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35963448/

相关文章:

c++ - 具有夹具支持的 BOOST_DATA_TEST_CASE

c++ - 在字符串/字符数组中捕获串行输入

c++ - 如何在 C++ 中有效地将 double 转换为 int?

C++ 'stod()' 不工作, 'strtod()' 在编译期间抛出错误

c++ - Unicode - ICU 库 - 获取 UnicodeString 中的代码点计数

c++ - FileCodeModel::AddFunction 在传递 vsCMFunctionConstructor 时生成具有返回类型的函数

c++ - 让 linux SDL2 程序在没有安装 SDL2 的计算机上运行?

c++ - VS 说 "Too few arguments...",但其他编译器给我正确的输出?

c++ - 无法在 VS10 中订购 weak_ptr

c++ - 关于 deque<T> 的额外间接寻址