私はテンプレートプログラミングを初めて導入しました。だから私はいくつかの基本的なテンプレートプログラミングから始めました。私はいくつかのエラーが発生しているBinaryTree.hヘッダファイルを作成しました。私のコードの下に参照してください。C++でテンプレート内に別のテンプレート変数を宣言する
#ifndef BINARYTREE_H_
#define BINARYTREE_H_
#include <cstdlib>
#include<ctime>
template<typename T>
struct Node
{
T data;
Node *lChild;
Node *rChild;
};
template<class T>
class BinaryTree
{
private:
Node<T> *root;
void addHelper(T value, Node<T> *leaf)
{
if(leaf == NULL)
{
leaf->data = value;
leaf->lChild = NULL;
leaf->rChild = NULL;
}
else if(leaf->lChild == NULL)
{
leaf->lChild->data = value;
leaf->lChild->lChild = NULL;
leaf->lChild->rChild = NULL;
}
else if(leaf->rChild == NULL)
{
leaf->rChild->data = value;
leaf->rChild->lChild = NULL;
leaf->rChild->rChild = NULL;
}
else
{
srand((int)time(0));
int i = rand() % 2;
if(i == 0)
{
addHelper(value, leaf->lChild);
}
else
{
addHelper(value, leaf->rChild);
}
}
}
void traverseHelper(Node<T> *leaf)
{
if(leaf == NULL)
return;
traverseHelper(leaf->lChild);
traverseHelper(leaf->rChild);
std :: cout << leaf->data;
}
public:
BinaryTree()
{
root = NULL;
}
void addNode(T value)
{
addHelper(value, root);
}
void traverseNode()
{
traverseHelper(root);
}
};
#endif /* BINARYTREE_H_ */
今私のメインのTEST.CPPは次のようになります。
#include<iostream>
#include "BinaryTree.h"
using namespace std;
int main()
{
BinaryTree<int> bt;
bt.addNode(5);
bt.addNode(6);
bt.addNode(15);
bt.addNode(20);
bt.traverseNode();
return 0;
}
をしかし、私は、コードを実行しようとしたとき、それは私にいくつかのエラーを示し
0 [main]コンテナ8796 cygwin_exception :: open_stackdumpfile:スタックトレースをContainers.exe.stackdumpにダンプする
エラーが発生している場所で誰でも助けてくれますか