【发布时间】:2016-01-29 19:46:29
【问题描述】:
我正在编写一个对多项式进行各种运算的程序。多项式是由节点对象组成的链表。对象“节点”有两个数据成员,m_coefficient 和 m_degree 显然是每个单项式的系数和度数。对于该项目,我被赋予了要实现的功能。我有默认构造函数,我相信我已经正确实现了。
Polynomial :: Polynomial(){
Node *m_head = NULL;
}
节点 *m_head 是多项式对象的唯一数据成员。
我现在有这个应该是复制构造函数:
Polynomial :: Polynomial(const Polynomial& p)
如何使用它使 p 成为原始链表的深层副本。
编辑:
这是 Node 类:
class Node {
public:
Node();
Node(long coeff, unsigned int deg);
long m_coefficient;
unsigned int m_degree;
Node *m_next;
};
【问题讨论】:
-
@Matthew Hanson 你应该展示节点是如何定义的。
-
你还需要实现赋值运算符和析构函数,而不仅仅是复制构造函数。
-
我也创建了析构函数和默认构造函数。但如果有帮助,我还添加了如何设置节点类
-
您实际上在构造函数上失败了,因为它定义了一个局部变量而不是分配给成员。
标签: c++ pointers linked-list deep-copy