C++ 从操作员+到操作员的更改内容-
所以对于一个BigInt问题,我想添加一个操作符-,我将如何更改我的代码?这只是为了练习,但我在寻找改变的解决方案时遇到了一些问题 这是我的接线员+:C++ 从操作员+到操作员的更改内容-,c++,operator-overloading,bigint,C++,Operator Overloading,Bigint,所以对于一个BigInt问题,我想添加一个操作符-,我将如何更改我的代码?这只是为了练习,但我在寻找改变的解决方案时遇到了一些问题 这是我的接线员+: int carry = 0; int sum; BigInt result; list<int>::reverse_iterator rit1 = number.rbegin(); list<int>::reverse_iterator rit2 = operand.number.rbegi
int carry = 0;
int sum;
BigInt result;
list<int>::reverse_iterator rit1 = number.rbegin();
list<int>::reverse_iterator rit2 = operand.number.rbegin();
while ( (rit1 != number.rend()) || (rit2 != operand.number.rend()) )
{
sum = 0;
if (rit1 != number.rend())
{
sum += *rit1;
rit1++;
}
if (rit2 != operand.number.rend())
{
sum += *rit2;
rit2++;
}
sum += carry;
result.number.push_front(sum % 10);
carry = sum / 10;
}
if (carry > 0)
result.number.push_front(carry);
return result;
为什么不构建操作符呢?就x+-y而言。。。?如果您还没有求反运算符,那么添加它似乎很好,而且更容易。然后,您需要修复运算符+,以处理负数,但如果不能,它对任何人都没有多大用处。包括原型和终止支架如何?总之,代码墙不错。我认为OP在声明运算符时没有问题。。它被标记为BigInt,因此他们对BigInt进行加法运算,并想知道如何进行减法运算。@CantChooseServerNames,您是对的。为什么不构建运算符-以x+-y的形式。。。?如果您还没有求反运算符,那么添加它似乎很好,而且更容易。然后你需要修正你的操作符+来处理负数,但如果它不能,对任何人都没有多大用处。@TonyD,我没想到这一点。非常感谢。我现在让它工作了。如果你提供答案,我会接受的。