在指针上重载operator ++

Man*_*anu 1 c++ pointers class operator-overloading

我有一节课:

class Name {
public:
    int key;
    Name* next;
}
Run Code Online (Sandbox Code Playgroud)

我怎么能写operator++这样当p"Node* p"如果我写"p++"它会做"p = p->next"

期待的感谢,Marron.

Luc*_*ore 6

你不能,也不应该,因为这是违反直觉的.

关于拥有一系列这样的对象:

Name names[42];
Name* p = names;
p++;
Run Code Online (Sandbox Code Playgroud)

p现在应该指向数组中的第二个元素(即names[1]),而不是任何names[0]保持.

如果一个对象持有指向下一个对象的指针,那么最好应用于++对象本身(而不是指针)应该给你下一个对象.