コードを短くしようと思います。
テンプレートを使用してバイナリ検索ツリー (略して BST) を作成しようとしています。
add 関数でエラーが発生しましたが、何らかの形でテンプレートを誤用していると確信しています
テンプレートのため、このコードはすべて .h (ヘッダー) ファイルにあります。
編集: const タイプと間違いは、私がいじったためでした。実際には、コンパイルしたコードではなく、スタック オーバーフローに関する以前の質問からのものでした。
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 の前に期待される一次式