Как получить адрес объекта в объявлении класса этого объекта на C ++? - PullRequest
0 голосов
/ 11 июля 2020

Я реализую двусвязный список на C ++ и пытаюсь добавить метод node.append(node2) к классу узла, который будет связывать новый объект узла (node2) с предыдущим (node). Я получаю сообщение об ошибке expected primary-expression before ‘;’ token в строке node->previous = Node;. Как мне получить адрес объекта в определении его класса, чтобы я мог назначить его node->previous?

class Node {
    public:
        int value;
        Node *next;//points to next node. 
        Node *previous;//doubly linked list.
        void append(Node *node) {
            next = node;
            node->previous = Node;
            node->next = NULL;
        }
};

1 Ответ

0 голосов
/ 11 июля 2020

Используйте указатель this для доступа к адресу вашего объекта в C ++. Измените строку node->previous = Node; на node->previous = this;.

...