Jon*_*nas 4 c++ overloading linked-list operator-keyword
我正在训练我的C++,我正在尝试编写一个能够使用链表来表示以下数字的库:
999999999*([i = 0]Σ[999999999] 1000000000 ^ i)
例如,如果我的号码是711381450277869054011,它将表示如下:
711*1000000000 ^ 2 + 381450277*1000000000 ^ 1 + 869054011*1000000000 ^ 0
所以,这是我的LL的结构及其功能:
typedef struct node* ll;
struct node
{
unsigned int data;
ll next;
};
bool insert(ll&, unsigned int);
// ...
void copy(ll&, ll);
void destroy(ll&);
Run Code Online (Sandbox Code Playgroud)
这是我的无符号非常长的整数类:
class uli
{
public:
uli();
~uli();
// <<, >>, =, operators...
uli& operator +=(const uli&);
uli& operator +=(char*);
const uli operator +(const uli&);
private:
ll head;
};
uli::uli()
{
head = NULL;
insert(head, 0);
}
uli::~uli()
{
destroy(head);
}
Run Code Online (Sandbox Code Playgroud)
+ =运算符工作正常,我用它来重载+运算符.
问题是我不能让方法operator +()返回一个const uli,而不是在我使用它之前它被解构器销毁.
const uli uli::operator +(const uli& rarg) // rarg: right argument
{
uli larg; // left argument
larg = *this;
larg += rarg;
return larg;
}
// returns an LL to somewhere ???? larg was destroyed.
Run Code Online (Sandbox Code Playgroud)
现在我做不到 Z = X + Y;
| 归档时间: |
|
| 查看次数: |
1029 次 |
| 最近记录: |