| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 684 人关注过本帖
标题:请大家帮我分析下这是为什么?
只看楼主 加入收藏
zhanghj
Rank: 1
来 自:江苏盐城
等 级:新手上路
帖 子:56
专家分:0
注 册:2007-11-24
结帖率:100%
收藏
 问题点数:0 回复次数:7 
请大家帮我分析下这是为什么?
#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&&current->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这两个函数成员是在类里面实现的,
而其它函数成员是在类外实现的,不知道为什么不出现,如果放在类里实现,"."后也会出现,不过放在类里不好,.
请大家帮我分析下.
搜索更多相关主题的帖子: 模版 
2008-07-16 10:53
zzc5411
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2008-7-14
收藏
得分:0 
类的成员函数调用数据成员还用“.”么?
呵呵,说实话没太明白你要说什么!
2008-07-16 16:16
zhanghj
Rank: 1
来 自:江苏盐城
等 级:新手上路
帖 子:56
专家分:0
注 册:2007-11-24
收藏
得分:0 
我说的是类的对象调用类里面的成员,就是主函数中的类对象 x,
在x后加"."时应该出现所有的类的成员,但是只出现current,root,GetData,IsEmpty这四个成员,我不知道为什么.
2008-07-17 08:41
zhanghj
Rank: 1
来 自:江苏盐城
等 级:新手上路
帖 子:56
专家分:0
注 册:2007-11-24
收藏
得分:0 
" border="0" />
2008-07-17 17:27
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
收藏
得分:0 
你在做模板吧?

天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2008-07-17 21:16
忘记喧嚣
Rank: 1
等 级:新手上路
帖 子:146
专家分:0
注 册:2007-10-7
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册


VC2003下的图..可以全部显示.你代码我一个都没改你的
2008-07-18 00:19
zhanghj
Rank: 1
来 自:江苏盐城
等 级:新手上路
帖 子:56
专家分:0
注 册:2007-11-24
收藏
得分:0 
谢谢了,
2008-07-18 09:01
zhanghj
Rank: 1
来 自:江苏盐城
等 级:新手上路
帖 子:56
专家分:0
注 册:2007-11-24
收藏
得分:0 
我用的是VC6.0,后来我不用模版又可以了,是编译器的问题?还是什么?
2008-07-18 09:23
快速回复:请大家帮我分析下这是为什么?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023240 second(s), 11 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved