Как правильно создать статический сторожевой узел? - PullRequest
0 голосов
/ 26 мая 2018

Я хочу иметь один экземпляр сторожевого узла, который другие узлы могут использовать как часть своего конструктора.Я пытался

struct Node;
static Node sentinel(0);
struct Node{
    Node(int val): next(&sentinal), val(val) {}
    Node *next;
    int val;
};

int main() {
    Node *node = new Node(42);
}

Это не работает, потому что

'Node sentinel' has initializer but incomplete type 

Как правильно создать один сторожевой узел для нескольких узлов значений?

1 Ответ

0 голосов
/ 26 мая 2018

Вы можете сделать своего стража статическим членом Node.

struct Node{
    Node(int val): next(&sentinel), val(val) {}
    Node *next;
    int val;
    static Node sentinel;
};

Node Node::sentinel(0);

int main() {
    Node *node = new Node(42);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...