template <typename T>
class stnode
{
   public:
    T nodeValue;
    // 结点数据    stnode<T> *left, *right, *parent;
    // 指向子树的指针和指向父亲的指针    // 构造函数
   stnode (const T& item, stnode<T> *lptr = NULL, 
           stnode<T> *rptr = NULL, stnode<T> *pptr = NULL):
nodeValue(item), left(lptr), right(rptr), parent(pptr)
         {}
};typedef struct tagNewsViewInfo
{
bool bShowTime; //是否显示时间
bool bShowID; //是否显示ID
bool bShowType; //是否显示类型
bool bShowTopic; //是否显示主题(Title)
bool bShowOrigin; //是否显示新闻来源
} NEWSVIEWINFO;
template <typename T>
class stree
{
private:
stnode<T> *root;
// 指向树根
int treeSize;
// 树中的元素数目
}
这里列出的仅是一些简单的:
我的意思是比如我像如像来定义这棵树:
stree<NEWSVIEWINFO> mTree;我想使构造结点类的时候,给这个结点中的结构NEWSVIEWINFO一些初始值,我该如何来改造结点类的构造函数:// 构造函数
   stnode (const T& item, stnode<T> *lptr = NULL, 
           stnode<T> *rptr = NULL, stnode<T> *pptr = NULL):
nodeValue(item), left(lptr), right(rptr), parent(pptr)
         {}请高手写详细一点

解决方案 »

  1.   

    1、如果任何时候的初始化都相同,给NEWSVIEWINFO一个构造函数就行了。
    2、如果根据情况有所不同,可以在外部设置好NEWSVIEWINFO相应字段的值才传给stnode
    3、故弄玄虚的方法,传NEWSVIEWINFO给stnode时顺便传一个回调接口给它,它使用这个回调接口给NEWSVIEWINFO初始化。总之,这个需求似乎比较奇怪。
      

  2.   

    首先对于节点结构需要这样修改一下
    typedef struct tagNewsViewInfo
    {
    bool bShowTime; //是否显示时间
    bool bShowID; //是否显示ID
    bool bShowType; //是否显示类型
    bool bShowTopic; //是否显示主题(Title)
    bool bShowOrigin; //是否显示新闻来源
    tagNewsViewInfo( const tagNewsViewInfo& Object) ; //拷贝构造函数 编译器会公布
             tagNewsViewInfo():bShowTime(false),bShowID(false),bShowType(false),bShowTopic(false),bShowOrigin(false){} //默认构造赋予初值
    } NEWSVIEWINFO;
    inline tagNewsViewInfo::tagNewsViewInfo( const tagNewsViewInfo& Object )
    {
    bShowTime = Object.bShowTime;
    bShowID = Object.bShowID;
    bShowType = Object.bShowType;
    bShowTopic = Object.bShowTopic;
    bShowOrigin = Object.bShowType;
    }
    //T可以和其他类型一样构造nodeValue(item),item本身构造是默认的被构造为全部为false的对象
    stnode (const T& item, stnode<T> *lptr = NULL, 
               stnode<T> *rptr = NULL, stnode<T> *pptr = NULL):
    nodeValue(item), left(lptr), right(rptr), parent(pptr)
             {}
      

  3.   

    楼主不要忘了 
    此时已经在c++了不是在c了
    typedef 中struct结构是 和类一样的 公开所有接口的类
    构造 和 node一样
    ^_^