C++ 类中的私有指针不';在方法中更改时不更新

C++ 类中的私有指针不';在方法中更改时不更新,c++,C++,我有这些类(为了可读性而剥离) 这是Add中的实现 void intLinkedList::Add (int newX){ node* newNode = new node(); newNode->x = newX; newNode->next = NULL; std::cout << "\n\n" << root << "\n\n" << std::flush; if (root == NULL){ r

我有这些类(为了可读性而剥离)

这是Add中的实现

void intLinkedList::Add (int newX){
  node* newNode = new node();
  newNode->x = newX;
  newNode->next = NULL;

  std::cout << "\n\n" << root << "\n\n" << std::flush;

  if (root == NULL){
    root = newNode;    
    return;
  }

  node * current;
  current = root;

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

  current->next = newNode;

  return;
}
void intLinkedList::Add(int newX){
node*newNode=newNode();
newNode->x=newX;
newNode->next=NULL;

顺便说一句:我想知道为什么人们编写链表实现?为什么不使用

这将生成一个完整的新MyList项。您应该改用引用

void AddValue(intLinkedList& MyList);
编辑:

你为什么使用

 case 1: AddValue(MyList); break;
而不是:

 MyList.Add(...);
任何间接方式都会增加错误、复杂性和不可读性的风险。你的问题就是一个很好的例子

这是我第一次看到,也许还有很多


希望这是一个切入点。

顺便说一句:我想知道为什么人们编写链表实现?为什么不使用

这将生成一个完整的新MyList项。您应该改用引用

void AddValue(intLinkedList& MyList);
编辑:

你为什么使用

 case 1: AddValue(MyList); break;
而不是:

 MyList.Add(...);
任何间接方式都会增加错误、复杂性和不可读性的风险。你的问题就是一个很好的例子

这是我第一次看到,也许还有很多


希望这是一个切入点。

我们不会因为问题简单而否决,我们否决是因为其他标准(即问题不包含简明的可复制程序(如您的程序))“为了可读性而剥离”不要这样做,谁说你没有在其他地方重击堆栈..此代码没有显示你正在描述的行为。当你“为了可读性而剥离”时,你已经删除了导致错误的任何东西。请显示简单的驱动程序program@user657267你知道那很好的
[MCVE]
magic thing?节省了大量键入和撰写链接的时间。我们不会因为问题简单而否决,我们否决是因为其他标准(即问题不包含简明的可复制程序(如您的程序))。“为了可读性而剥离”不要这样做,谁说你没有在其他地方重击堆栈..此代码没有显示你正在描述的行为。当你“为了可读性而剥离”时,你已经删除了导致错误的任何东西。请显示简单的驱动程序program@user657267你知道那很好的
[MCVE]
magic thing?节省了大量键入和撰写链接的时间。bingo.pro提示:使用printf(cout)时要发出调试语句,请不要忘记输出您正在打印的实例的地址字段…这将有助于找到这些错误,其中的副本未按预期制作。哦,天哪。当然。每次都是一个新列表。请看,我知道我在做一些愚蠢的事情。哈哈。“我想知道人们为什么要编写链表实现?”可能是因为愚蠢的家庭作业和糟糕的老师。谢谢大家的帮助。@Klaus可能不是你想要提及的。你为什么拒绝我的编辑?如果你不想看到我愚蠢的头像出现在你的答案中,只需去编辑并在最后添加一个新行或诸如此类。宾果。专业提示:使用printf(cout)时要发出调试语句,请不要忘记输出您正在打印的实例的地址字段…这将有助于找到这些错误,其中的副本未按预期制作。哦,天哪。当然。每次都是一个新列表。请看,我知道我在做一些愚蠢的事情。哈哈。“我想知道人们为什么要编写链表实现?”可能是因为愚蠢的家庭作业和糟糕的老师。谢谢大家的帮助。@Klaus可能不是你想要提及的。你为什么拒绝我的编辑?如果你不想看到我愚蠢的头像出现在你的答案中,那就去编辑并在最后添加一个换行符吧。