【发布时间】:2012-01-12 22:19:44
【问题描述】:
我正在使用结构作为节点编写二叉搜索树。我需要使用结构构造函数初始化结构中的变量。
我有以下代码可以正常工作:
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';
}
}
我需要使用带有参数的构造函数进行初始化--> 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';
}
}
所以我的问题是关于将参数传递给初始化结构变量的结构的构造函数。我似乎无法弄清楚这是否发生在结构内部或外部,或者正确的语法是什么。我正在尝试完成第一个代码段所做的事情,但通过将参数传递给构造函数来完成。任何帮助将不胜感激。
编辑: 以下是我得到的错误:
【问题讨论】:
-
请告诉我们错误是什么,是什么代码导致的。这将有助于我们帮助您。
-
连同下面关于成员初始化列表的答案,听说过“this”关键字吗?
-
我附上了上面的错误,我用“this”关键字尝试了同样的实现,仍然得到同样的错误。
标签: c++ constructor struct