我有这个代码:
class DoubleMeanVar{
protected:
double m;
double v;
public:
DoubleMeanVar(double x=0) : m(x), v(0) {}
DoubleMeanVar& operator+=(double x);
void operator/=(){m = 1; v = 0;}
};
DoubleMeanVar& DoubleMeanVar::operator+=(double x){
m+=x;
v+=x*x;
return *this;
}
当我运行它时,我遇到了这个错误:
error: ‘void DoubleMeanVar::operator/=()’ must have exactly one argument
在行:
我不明白为什么,我将运算符/ =定义为一种方法,它不需要参数。
最佳答案
即使您不使用它,/=
运算符也必须有一个(只有一个)参数。在您的情况下,您可以这样声明它(未使用的参数不需要名称):
void operator/=(double){m = 1; v = 0;}
尽管您为什么想要
/=
运算符执行该操作对我来说还是个谜。关于c++ - 错误: ‘void DoubleMeanVar::operator/=()’必须只有一个参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61543177/