[C++] 상속관련..

seiren03의 이미지

#include <iostream>
using namespace std;
template <class T>
class Tree;
template <class T>
class TreeNode{
	friend class Tree<T>;
	public:
		TreeNode<T>(){
			data = NULL;
			leftChild = NULL;
			rightChild = NULL;
		}
	private:
		T data;
		TreeNode<T> *leftChild;
		TreeNode<T> *rightChild;
};
template <class T>
class Tree{
	private:
		TreeNode<T> *root;
	public:
		Tree(){
			root = NULL;
			count = 0;
		}
		bool IsEmpty(){
			if(root == NULL)
				return true;
			else
				return false;
		}
 
		// complete binary trees
		void TPush(T x){
			TreeNode<T> *current;
			current = root;
			if(IsEmpty()){
				current->data = x;   <== 요기!
				return;
			}
		}
};
int main(){
	Tree<int> test;
	test.TPush(13);
	return 0;
}

트리를 구현하려고 하는데 일단 여기까지만 하고 컴파일을 했더니 에러는 없는데
실행을 하면 segmentation fault가 뜹니다..
저기 표시한 부분때문에 뜨는것 같은데 어떻게 해야할지 모르겠네요 ㅠ
도와주세요

(왜 < ~~ > 는 안나오는지 모르겠네요 ㅠ)

kewlbear의 이미지

current가 NULL 아닌가요?
그리고 상속과는 관련이 없는 것 같습니다.