请大家帮我分析下这是为什么?
#include<iostream.h>template<class T> class Tree;
template<class T>class TreeNode
{
friend class Tree<T>;
public:
TreeNode();
TreeNode(T value,TreeNode<T>* fc=NULL,TreeNode<T>* ns=NULL);
T data;
TreeNode<T>* FirstChild;
TreeNode<T>* NextSibling;
};
template<class T> TreeNode<T>::TreeNode()
{
FirstChild=NextSibling=NULL;
}
template<class T> TreeNode<T>::TreeNode(T value,TreeNode<T>* fc,TreeNode<T>* ns)
{
data=value;
FirstChild=fc;
NextSibling=ns;
}
template<class T>
class Tree
{
public:
Tree();
~Tree();
int Root();
void BuildRoot(const T&value);
int Srh_FirstChild();
int Srh_NextSibling();
int Parent(TreeNode<T>* r,TreeNode<T>* v);
int Parent();
int Find(TreeNode<T>* p,const T&value);
int Find(const T&value);
void InsertChild(const T&value);
int DeleteChild(int i);
void DeleteSubTree(TreeNode<T>* p);
void DeleteSubTree();
T GetData(){return current->Data;}
int IsEmpty(){if(root==NULL) return 1;else return 0;}
private:
TreeNode<T>* root;
TreeNode<T>* current;
};
template<class T>
Tree<T>::Tree()
{
root=current=NULL;
}
template<class T>
Tree<T>::~Tree()
{
if(root!=NULL) DeleteSubTree(root);
root=NULL;
}
template<class T>
void Tree<T>::BuildRoot(const T&value)
{
root=current=new TreeNode<T>(value);
}
template<class T>
int Tree<T>::Srh_FirstChild()
{
if(current!=NULL&¤t->FirstChild!=NULL)
{
current=current->FirstChild;
return 1;
}
current=NULL;
return 0;
}
... //其它的成员函数
void main()
{
Tree<int> x;
}
" border="0" />
一般对象后加"."后,后面都会出现该类的函数成员和数据成员
但是这里不知道为什么只出现current,root,GetData,IsEmpty这几个成员,
我分析了一下,current,root是数据成员,GetData,IsEmpty这两个函数成员是在类里面实现的,
而其它函数成员是在类外实现的,不知道为什么不出现,如果放在类里实现,"."后也会出现,不过放在类里不好,.
请大家帮我分析下.