我收到了一些源自我的 Copy-Constructor 的编译器错误。我知道第一个错误是由于操作数类型不兼容,我只是不确定编写该代码的更好方法。第二个错误我完全不确定。为什么不能'='
从 Node* 转换为 Node*?
任何帮助或方向都将得到应用。
谢谢!
// Copy-Constructor
List::List(const List& theList)
{
Node* tempPtr = new Node;
tempPtr = theList.first;
//error C2040: 'tempPtr' : 'List' differs in levels of indirection from 'Node *'
List(tempPtr);
while (tempPtr != NULL)
{
Node* copyNode = new Node;
//error C2440: '=' :cannot convert from 'Node *' to 'Node *'
copyNode = tempPtr;
tempPtr = tempPtr->getNext();
nodeListTotal++;
}
}
下面是我的构造函数和析构函数。
List::List():first(0), last(0), nodeListTotal(0)
{
}
// Destructor
List::~List()
{
Node* currentNode = first;
while(currentNode != NULL)
{
Node* temp = currentNode;
currentNode = currentNode->getNext();
delete temp;
}
}