(语言是C++)
我自创了一个Money类,用于表示钱。在类中我重载了“/”号,但是被除数在除法运算过程中发生了改变。如下图
这种情况怎么解决呢?
(语言是C++)
我自创了一个Money类,用于表示钱。在类中我重载了“/”号,但是被除数在除法运算过程中发生了改变。如下图
因为你是在被除数的作用域下执行的division, 然后又返回了被除数的this指针
/的重载里面重新新建一个值为monet_number/i的money实例即可
Money::Money(Money& tmp){
this->money_number = tmp.money_number;
}
Money& Money::operator/(double i){
Money tmp(this);
tmp.division(i);
return tmp;
}
不过话说回来, 加减乘除这种运算本身就不应该修改参加运算的参数的值, 而是应该另外返回一个数据类型的实例