读书人

小弟我有个多项式类 Poly, 成员有指针

发布时间: 2012-02-23 22:01:34 作者: rapoo

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

C/C++ code
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 出来的对象会不会被销毁?

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




[解决办法]
用new是绝对不可以的!
new出来的对象会一直存在除非你将它delete掉
[code=C/C++][/code]
Poly& Poly::operator + (Poly &Orig)
{
return pHead->m_nDegree + Orig.pHead->m_nDegree;
}
[解决办法]
上面写错了
不知道你的operator +是要对哪个变量进行加法
不过返回类型应该是const Poly,而不是Poly&,因为表达式是不能被赋值的
基本形式应该是这样
const Poly Poly::operator+(const Poly& Orig)
{
Poly result;
result.m_value = m_value + Orig.m_value;
return result;
}

读书人网 >C++

热点推荐