C++重载加号运算符返回时遇到的问题

dzz10 dzz10 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
代码如下:
BigNumber BigNumber::operator+( BigNumber& r )
{
Invert(r.data);//倒置
Invert(data);

int len = (int)strlen(data);
int r_len = (int)strlen(r.data);

char* temp = new char[len * r_len];

int b = 0;
for(int i = 0; i < max(len, r_len); i++){
int t = (isOk(*(this->data + i)) - '0') + (isOk(*(r.data + i)) - '0') + b;
if(t >= 10) b = 1;
else b = 0;
*(temp + i) = t % 10 + '0';
}

if(b){
*(temp + max(len, r_len)) = '1';
*(temp + max(len, r_len) + 1) = 0;
}else *(temp + max(len, r_len)) = 0;

Invert(r.data);
Invert(data);
Invert(temp);

BigNumber end(temp);
delete[len * r_len]temp;

return end;//此句要进拷贝构造函数,再进析构函数
}

返回给调用处的data是0XCCCCCCCC。

我就不明白了,在return那里明明拷贝了一个,为什么还是不行呢?
...全文

相关推荐

评论 9
收藏 已收藏
分享
返回顶部
dzz10
C++ 语言 65,214 成员 250,514 内容