【问题标题】:Change LinkedList to accept Objects instead of Int?更改 LinkedList 以接受 Objects 而不是 Int?
【发布时间】:2014-03-19 01:34:47
【问题描述】:

我有一个完整工作的 LinkedList,它与 int 变量一起工作。我希望将其更改为与对象一起使用,但是在涉及指针时我感到很困惑。有什么建议吗?

这是节点结构:

   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

只是一些简单的改变吗​​?

【问题讨论】:

  • 您到底遇到了什么问题?将int dataint dataToAdd 更改为您想要存储的任何对象类型将是第一步(您可能还想开始研究模板)。
  • 我同意。新的声明看起来像 someObjectType datasomeObjectType dataToAdd

标签: c++ c oop pointers


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-06
    • 2016-04-06
    • 2013-04-10
    • 2019-09-04
    • 2020-12-23
    • 2021-10-04
    • 2010-11-29
    • 1970-01-01
    相关资源
    最近更新 更多