我正在尝试做我的学校项目,该项目是关于创建一个可以处理分数的库,我实现了许多功能,并且成功地使许多运算符超载,但我只是不明白问题出在哪里。我试图重载=运算符,但我不断得到这个; “ Razlomci运算符=(Razlomci&,const Razlomci&)'必须是非静态成员函数”。不要感到困惑,Razlomci在我的语言中基本上是分数。我感谢所有帮助
我什么也没尝试,因为我不知道该怎么办。
Razlomci operator=(Razlomci &lijevo, const Razlomci &desno) {
Razlomci priv(lijevo.brojnik = desno.brojnik, lijevo.nazivnik =
desno.nazivnik);
return priv;
}
我只想使用=运算符实际上将一些值添加到分数,而没有其他内容。
class:
class Razlomci {
private:
int najveciZS(int a, int b) {
while (a != b) {
if (a > b) {
a -= b;
} else {
b -= a;
}
}
return a;
}
public:
int brojnik, nazivnik;
Razlomci() {
brojnik = 0;
nazivnik = 1;
}
Razlomci(int n, int d) {
if (d==0) {
cerr << "Unijeti nazivnik ne valja; ne smije biti jednak nuli" << endl;
exit(0);
} else if (n == 0) {
brojnik = 0;
nazivnik = 1;
} else {
int predz = 1;
if (n < 0) {
predz *= -1;
n *= -1;
}
if (d < 0) {
predz *= -1;
d *= -1;
}
int priv = najveciZS(n, d);
brojnik = n/priv*predz;
nazivnik = d/priv;
}
}};