小弟我有个多项式类 Poly, 成员有指针,怎么返回 operator + 的结果
我有个多项式类 Poly, 成员有指针,如何返回 operator + 的结果?C/C++ codestruct Term{public:intm_nDegre
我有个多项式类 Poly, 成员有指针,如何返回 operator + 的结果?
C/C++ codestruct 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;
}