Узел идентификатора* не определен (проблема с компоновщиком) [дубликат]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Узел идентификатора* не определен (проблема с компоновщиком) [дубликат]

Сообщение Anonymous »

Мне очень жаль, если это дублирующийся пост, но я действительно застрял в этой конкретной проблеме. По какой-то необъяснимой причине компилятор не понимает, какой тип возвращаемого значения Node* имеет в файле .cpp, вот код:

Код: Выделить всё

template
Node* BinarySearchTree::DiveDownToReplace(Node* node) {
if (node->leftChild->rightChild == nullptr) {
return node->leftChild;
}
//otherwise
Node* traversingNode = node->leftChild;
Node* returnedNode;
while (true) {
if (traversingNode->rightChild->rightChild == nullptr) {
returnedNode = traversingNode->rightChild;
traversingNode->rightChild = returnedNode->leftChild;
returnedNode->leftChild = nullptr;
break;
}
traversingNode = traversingNode->rightChild;
}
return returnedNode;

}
Вот также код в .h(заголовочном файле):

Код: Выделить всё

#pragma once
template
class BinarySearchTree {
private:

struct Node
{
T data;
Node* leftChild;
Node* rightChild;
};

int m_Length = 0;
Node* root = new Node();

public:
enum class TraverseMethod
{
preorder,
inorder,
postorder,
levelorder
};

~BinarySearchTree();
void AddElement(T value);
T RemoveRoot();
bool RemoveElement(T value);
void PrintAllElements(TraverseMethod traverseMethod);
bool IsEmpty();
bool GetSize();
bool Contains(T value);

private:

void PreOrder(Node* node);
void InOrder(Node* node);
void PostOrder(Node* node);
void LevelOrder(bool deleteNode = false);
void DiveDownToAdd(T value, Node* node);
Node* DiveDownToReplace(Node* node);
};
Я получаю сообщение об ошибке «Узел идентификатора не определен». Я попытался добавить BinarySearchTree::Node* вместо Node*, но получил несколько странных ошибок (c2061, синтаксическая ошибка: идентификатор «Node»). Еще раз прошу прощения, если этот пост дублируется, но, исходя из таких языков, как C # и Java, мне действительно надоели эти проблемы с заголовками. Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/749 ... er-problem
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»