2011-12-05 155 views
0

我正在使用struct作为节点来编写二叉搜索树。我需要用struct构造函数初始化结构体中的变量。将内部变量传递给结构构造函数C++

我有下面的代码工作得很好:

struct TreeNode{ 
    char name[20]; 
    int bribe; 
    TreeNode* left; 
    TreeNode* right; 

    TreeNode() 
    { 
     bribe = '\0'; 
     left = NULL; 
     right = NULL; 
     for (int i = 0; i < 20; i ++){ 
     name[i]= '\0'; 
    } 
} 

我需要有一个构造函数的参数初始化 - > 树节点(字符*名称,INT贿赂,树节点*左,树节点*右) 我想这是类似于我看到了一个例子,但我得到了一些错误的情况如下:

struct TreeNode{ 

    char name[20]; 
    int bribe; 
    TreeNode* left; 
    TreeNode* right; 

    TreeNode(char* name, int bribe, TreeNode* left, TreeNode* right); 
}; 


TreeNode::TreeNode(char* name, int bribe, TreeNode* left, TreeNode* right){ //***check this 
    bribe = '\0'; 
    left = NULL; 
    right = NULL; 
    for (int i = 0; i < 20; i ++){ 
     name[i]= '\0'; 
    } 
} 

所以我的问题是关于传递参数给一个构造函数初始化的结构varai一个struct统计局。我似乎无法弄清楚,如果这发生在内部或外部,或者正确的语法是什么。我试图完成第一个代码段的工作,但是通过将参数传递给构造函数来完成。任何帮助将不胜感激。

编辑: 下面是我收到的错误:

enter image description here

+0

请告诉我们错误是什么,以及导致错误的原因。这会帮助我们帮助你。 –

+0

除了关于成员初始值设定项列表的答案,有没有听说过“this”关键字? –

+0

我附上上面的错误,我尝试了与“this”关键字相同的实现,仍然有相同的错误。 – user813611

回答

3

您应该使用C++中的Member Initializer List来初始化类成员。

+0

嘿,关于是否“初始化列表”是正确的术语,这么愚蠢的辩论。但是,当它发生时...无论如何,+1的链接。 –