gpt4 book ai didi

c++ - 在我自己的算法中重载运算符 +

转载 作者:行者123 更新时间:2023-11-28 05:57:09 24 4
gpt4 key购买 nike

<分区>

我有以下问题:假设我正在尝试实现我自己的类 MyInt,它能够容纳大量数字(我知道 BigNum 实现 - 这只是一种实践)。我已经实现了接受 int、unsigned long、unsigned long long 等的构造函数 - 因此我的问题。

我正在尝试使用以下声明重载运算符 +:

        friend MyInt operator+(const MyInt &, const MyInt &);

在类里面。

当我添加到 MyInt 时它工作正常,但是我希望它在像这样的情况下工作

MyInt x(0);
x = x + 1;

当我这样调用它时,我得到以下输出:

error: ambiguous overload for ‘operator+’ (operand types are ‘MyInt’ and ‘int’)

如果有任何关于如何解决这个问题的建议,我将不胜感激

编辑:

这是我编写的示例代码。构造函数是明确的

using namespace std;

class MyInt {
public:
MyInt() {};
explicit MyInt(int) {};
friend MyInt operator+(const MyInt &x, const MyInt &y) {
MyInt result;
cout << "operator + " << endl;
return result;
}
};

int main() {
MyInt x;
x = x + x; //this is fine
x = x + 1; //this is not
}

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