Двойной Указатель Вопрос - PullRequest
2 голосов
/ 03 марта 2011

Я пытаюсь создать шаблон дерева, который может иметь любое количество дочерних элементов на каждом узле. Это мой код для функции addChild в классе узла -

template<typename T>
void Tree<T>::Node::addChild(T& value) {
    Node* temp = new Node(value, this); //second parameter is for parent
    numOfChildren++;
    children*[numOfChildren] = temp;
}

Вместо указателя для левого и правого потомка, я подумал, что должен сделать двойной указатель (указатель на массив Node *).

Узел ** дети;

Я получаю сообщение об ошибке «Ожидаемое первичное выражение перед '[' token» ». Наверное, я неправильно получаю доступ к 2D-массиву? Или, может быть, я должен пойти по-другому? Как вы думаете, это сработало бы, если бы у меня были дети как

Узел * дети

Я чувствую, что это может сработать, если у меня просто будет Node *, и каждый элемент будет отдельным Node.

Любая помощь приветствуется.

1 Ответ

6 голосов
/ 03 марта 2011

Просто используйте children[numOfChildren]. Или сделайте это правильно с std::vector<Node *> children;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...