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

标签 c++ c oop pointers

我有一个完全可用的 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 替换为您的对象类型。

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

关于c++ - 更改 LinkedList 以接受对象而不是 Int?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22494550/

相关文章:

c - 在 Visual Studio 2012 中使用 sscanf_s 时出错

C - 多维数组分配

c++ - 使用 C++ 和 Openframeworks 创建对象的多个实例

C++目录树数据转化为 vector

c++ - 引发异常:写访问冲突。 temp为nullptr

c - 在 C 程序中获取(星号)作为输入

php - Codeigniter 的面向对象方案

python - python自动设置getter、setter和deleter

c++ - 应用基于不同掩码的位掩码

c++ - 配置 Visual Studio 以使用 Boost.Python 和 Python 3