将内部变量传递给结构构造函数C ++

时间:2011-12-05 03:59:34

标签: c++ constructor struct

我正在使用struct作为节点编写二叉搜索树。我需要使用struct构造函数初始化struct中的变量。

我有以下代码可以正常工作:

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';
    }
 }

我需要使用带参数的构造函数初始化 - &gt; TreeNode(char * name,int bribe,TreeNode * left,TreeNode * right) 我尝试了以下类似于我看到的示例,但我收到了一些错误:

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';
    }
}

所以我的问题是将参数传递给构造函数,以获取初始化结构变量的结构。我似乎无法弄清楚这是发生在stuct内部还是外部,或者正确的语法是什么。我试图通过将参数传递给构造函数来完成第一个代码段的功能。任何帮助将不胜感激。

编辑: 以下是我得到的错误:

enter image description here

1 个答案:

答案 0 :(得分:3)

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