Я постараюсь сделать код коротким.
Я пытаюсь создать B инарный S поиск T (сокращенно BST), используя шаблоны.
В моей функции добавления я получаю сообщение об ошибке, и я уверен, что каким-то образом неправильно использую шаблоны.
Весь этот код находится в файле .h (заголовок) из-за шаблонов.
РЕДАКТИРОВАТЬ: Константный тип и ошибка были из-за того, что я возился, на самом деле это было не в коде, который я компилировал, а из предыдущего вопроса о переполнении стека.
template <typename Type>
class BSTNode { // Binary Search Tree nodes
private:
int key; // we search by key, no matter what type of data we have
Type data;
BSTNode *left;
BSTNode *right;
public:
BSTNode (int, Type); // key, data
bool add (int, Type);
};
Функция добавления:
template <typename Type>
bool BSTNode<Type>::add(int newKey, Type newData) {
if (newKey < this->key) {
if (left == NULL) {
this->left = new BSTNode<Type>(int newKey, Type newData);
}
} else {
this->right = new BSTNode<Type>(int newKey, Type newData);
}
return false;
}
Вот где я получаю ошибку:
this->left = new BSTNode<Type>(int newKey, Type newData);
Ожидаемое первичное выражение перед int