我试图让我的运算符重载,实际上它只是一个包含算术函数和一系列数组变量的类。
但是当我重载我的(*)乘法运算符时,出现此错误:
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
。