gpt4 book ai didi

c++ - 在 C++ 中重载运算符 +

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:27:20 24 4
gpt4 key购买 nike

好的,我正在阅读一本书并尝试学习 C++ 运算符重载。我创建了一个 BigInt 类,它采用单个 int(最初设置为 0)作为构造函数。我重载了 += 方法,它在以下代码中工作得很好:

BigInt x = BigInt(2);
x += x;
x.print( cout );

代码将输出 4。因此,我正在使用以下代码重载全局运算符 +:

BigInt operator+(const BigInt lhs, const BigInt rhs)
{
BigInt returnValue(lhs);
returnValue += rhs;
return returnValue;
}

这也适用于以下代码:

BigInt x = BigInt(1);
BigInt y = BigInt(5);
BigInt z = x + y;
z.print();

这会打印出 6。但是,当我尝试执行以下代码时,它就是不起作用。这本书没有很好地解释,并暗示它应该很简单。

BigInt x = BigInt(1);
BigInt z = x + 5;
z.print();

这会打印出 1。我不确定为什么 z 是 1 而它应该是 6。我在网上和 stackoverflow 上用谷歌搜索,但我找不到其他人遇到与此完全相同的问题。有些很接近,但答案并不合适。非常感谢任何帮助!

最佳答案

最有可能的问题出在 += 运算符中。发布代码。

关于c++ - 在 C++ 中重载运算符 +,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2353142/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com