二进制“*”:找不到采用“statistician”类型的全局运算符(或者没有可接受的转换)

2024-02-01

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

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

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

当我的代码尝试执行以下操作时会发生这种情况:s = 2*u;在main.cpp中

其中 s 和 u 是统计学家类别。

统计学家=我的班级

(统计学家.h)

class statistician  
{
... other functions & variables...

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

..... more overloads...

};

任何帮助都会很棒谢谢!!


声明命名空间范围operator*,这样您还可以拥有敞篷车上的操作数left非类型的手侧statistician.

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

不用说,您应该删除类内的,并且您需要一个转换构造函数来获取int.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

二进制“*”:找不到采用“statistician”类型的全局运算符(或者没有可接受的转换) 的相关文章

随机推荐