Разбираю исходнички интересной программки и натолкнулся на код, назначение которого мне понятно, а причина использования его непонятна. Т.е что код делает — ясно, но почему код написан именно так?
Вот кусочек, все лишнее я повыкидывал.
class List;
class Node
{
public:
Node();
void InsertAfter(Node *pred);
private:
friend class List;
Node *succ;
Node *pred;
void *ptr;
};