私は、キー、データ、および比較関数のテンプレートタイプを使用してBSTクラスを作成しています。私は新しいノードを作成し、他の関数へのポインタを返す関数を持っています。問題は、テンプレートの使用中に戻り値の型が無効であることです。以前はテンプレートを使わずにツリーを作成し、型ノードを返すことは問題ではありませんでした。私はテンプレートのバージョンを動作させないために何が起こっているのか分かりません。 私は取得していますエラーが含まれます:テンプレートを返してノードを返す*
認識できないテンプレート宣言/定義
構文エラー:見つかりません「;」 before '*'
タイプ指定子がないとみなします。注:C++は、デフォルト-INT
私のクラステンプレート、ノード構造体およびノードの作成機能をサポートしていない以下の通りです:
template <typename KEY, typename VALUE, bool (*COMPARE)(KEY, KEY)>
class BSTROOT {
private:
struct Node {
KEY key;
VALUE value;
Node *left = nullptr;
Node *right = nullptr;
};
Node* createNode(const KEY& key, const VALUE& value);
template <typename KEY, typename VALUE, bool(*COMPARE)(KEY, KEY)> Node* BSTROOT<KEY, VALUE, COMPARE>::createNode(const KEY& key, const VALUE& value) {
Node *temp = new Node;
temp->key = key;
temp->value = value;
return temp;
}
任意のヒントや情報をいただければ幸いです。
あなたは'}とクラス定義を閉じたのに役立つと思いますか? – Cornstalks
[最小、完全、および検証可能な例]を提供してください(https://stackoverflow.com/help/mcve) – klutt
私のすべて{}は良いです、私はすべてのコードのまっすぐなコピー貼り付けをしませんでした私は考えていたビットは関連していた。私はページに膨大な量のコードを捨てるべきではないと思った。私が最初に質問したことは、私がいつも期待していることをしないと私を許します。 – odoylerules