5 c++ operator-overloading operators
好的,我正在编写一本书并尝试学习C++运算符重载.我创建了一个BigInt类,它为构造函数接受一个int(最初设置为0).我重载了+ =方法,它在以下代码中运行正常:
BigInt x = BigInt(2);
x += x;
x.print( cout );
Run Code Online (Sandbox Code Playgroud)
代码将输出4.因此,我正在使用以下代码重载全局运算符+:
BigInt operator+(const BigInt lhs, const BigInt rhs)
{
BigInt returnValue(lhs);
returnValue += rhs;
return returnValue;
}
Run Code Online (Sandbox Code Playgroud)
这也适用于以下代码:
BigInt x = BigInt(1);
BigInt y = BigInt(5);
BigInt z = x + y;
z.print();
Run Code Online (Sandbox Code Playgroud)
这打印出6.然而,当我尝试执行以下代码时,它只是不起作用.这本书不能很好地解释,并暗示它应该只是工作.
BigInt x = BigInt(1);
BigInt z = x + 5;
z.print();
Run Code Online (Sandbox Code Playgroud)
这打印出来1.我不知道为什么z应该为6时为1.我在网上搜索并在stackoverflow上搜索但是我找不到其他任何有问题的人.有些人很接近,但答案却不合适.任何帮助深表感谢!
归档时间: |
|
查看次数: |
670 次 |
最近记录: |