b = a-> b在一类列表中意味着什么?

Joã*_*nto 0 c++ list

在一类列表中,b = a-> b是什么意思?

我正在阅读的示例是列表中的析构函数,并且在其"while"循环中它具有此操作.

Clistint::~Clistint(){ 
  Clist *actual, *next; 
  if(head!=NULL){ 
    actual=head; 
    while(actual!=NULL){ 
      next=actual->next; 
      delete actual; 
      actual=next; 
    } 
  } 
}
Run Code Online (Sandbox Code Playgroud)

Doo*_*nob 8

编辑(现在你发布了你的代码)

next=actual->next; 
delete actual; 
actual=next; 
Run Code Online (Sandbox Code Playgroud)

这将只设置actualactual.next.你不能这样做

actual=actual->next;
Run Code Online (Sandbox Code Playgroud)

因为这将是内存泄漏(你永远不会删除旧的actual).此外,你不能只做

next=actual.next;
Run Code Online (Sandbox Code Playgroud)

因为actual是一个指针.因此,你必须得到它指向的东西,比如

next=(*actual).next;
Run Code Online (Sandbox Code Playgroud)

->操作员就是这么做的,所以你可以做到

next=actual->next; // means the same thing as "next=(*actual).next;"
Run Code Online (Sandbox Code Playgroud)

(原帖)

它意味着相同

b = (*a).b;
Run Code Online (Sandbox Code Playgroud)

它将局部变量设置b到的指针值ab.例如:

MyClass *a = new MyClass;
// do stuff with *a
int b;
b = a -> b; // gets the `b` value of `a` (assuming MyClass has a public int b)
            // same as "b = (*a).b;"
Run Code Online (Sandbox Code Playgroud)