我试图让我的运算符重载,实际上它只是一个包含算术函数和一系列数组变量的类。

但是当我重载我的(*)乘法运算符时,出现此错误:

     binary '*' : no global operator found which takes type 'statistician'
(or there is no acceptable conversion)

当我的代码尝试执行此操作时会发生这种情况:main.cpp中的s = 2*u;
其中s和u是统计师类。

统计员=我的类(class)

(statistician.h)
class statistician
{
... other functions & variables...

const statistician statistician::operator*(const statistician &other) const;

..... more overloads...

};

任何帮助将是非常感谢!

最佳答案

声明一个 namespace 范围operator*,以便您也可以在左侧使用一个不是statistician类型的可转换操作数。

statistician operator*(const statistician &left, const statistician &right) {
  // ...
}

不用说,您应该删除该类,然后需要一个转换构造函数以采用int

09-06 04:35