我有个多项式类 Poly, 成员有指针,如何返回 operator + 的结果?

cnStreamlet 2007-10-12 08:17:49

struct Term
{
public:
int m_nDegree;
double m_dCoef;
Term *m_pNext;
};

class Poly
{
private:
Term *pHead;

private:

public:
Poly();
~Poly();
Ploy &operator + (Poly &Orig);
};


在 operator + 里面,我究竟应该如何返回结果呢?
如果在这个函数里 new 一个 Ploy 出来用来返回,

那么用户进行
Poly p1, p2;
//p1, p2 的值给它
p1+p2;
这样以后,那个被我 new 出来的对象还会存在吗?

抑或 p3 = p1 + p2 (如果 = 是复制整个链表)
那么 p1 + p2 中 new 出来的对象会不会被销毁?

请大家给个解决方案,谢谢~


...全文
82 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnStreamlet 2007-10-12
  • 打赏
  • 举报
回复
哦,对,不是Poly&, 不是 & 的话我就可以返回临时对象了,没问题了,谢谢~~~
blackmurder 2007-10-12
  • 打赏
  • 举报
回复
上面写错了
不知道你的operator +是要对哪个变量进行加法
不过返回类型应该是const Poly,而不是Poly&,因为表达式是不能被赋值的
基本形式应该是这样
const Poly Poly::operator+(const Poly& Orig)
{
Poly result;
result.m_value = m_value + Orig.m_value;
return result;
}
blackmurder 2007-10-12
  • 打赏
  • 举报
回复
用new是绝对不可以的!
new出来的对象会一直存在除非你将它delete掉

Poly& Poly::operator + (Poly &Orig)
{
return pHead->m_nDegree + Orig.pHead->m_nDegree;
}

64,692

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧