更改LinkedList以接受对象而不是Int?

时间:2014-03-19 01:34:48

标签: c++ c oop pointers

我有一个完全工作的LinkedList,它使用int变量。我正在寻找改变它与对象的工作,但是当涉及到指针时我感到困惑。有什么建议吗?

这是Node结构:

   typedef struct Node
{
   int data;
   Node* next;
 }*   nodePointer;

这是AddNode函数:

void LinkedList::addNode(int dataToAdd)
{
  nodePointer nodeToAdd = new Node;
  nodeToAdd->next = NULL;
  nodeToAdd->data = dataToAdd;

  if(head != NULL)
  {
    current = head;

   while(current->next != NULL)
   {
   current = current->next;
   }

    current->next = nodeToAdd;
  }//end if

  else
  {
     head = nodeToAdd;
   }//end else
}//end addNode

这是几个简单的变化吗?

1 个答案:

答案 0 :(得分:1)

这取决于您将使用的对象类型。

对于默认=操作有意义的任何类,您可以使用现在使用的相同代码,将int替换为您的对象类型。

对于更复杂的对象(例如,一个持有指向动态分配成员的指针),您必须为此类定义适当的=运算符或使用复制函数来确保该对象正确复制