передача внутренних переменных в конструктор структуры C ++ - PullRequest
0 голосов
/ 05 декабря 2011

Я пишу двоичное дерево поиска, используя структуру в качестве узла.Мне нужно инициализировать переменные в структуре с помощью конструктора структуры.

У меня есть следующий код, который прекрасно работает:

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

Так что мой вопрос о передаче аргументов в конструктор для структуры, которая инициализируетструктуры varaibles.Я не могу понять, происходит ли это внутри или вне структуры, или каков правильный синтаксис.Я пытаюсь выполнить то, что делает первый сегмент кода, но сделать это путем передачи аргументов конструктору.Любая помощь будет принята с благодарностью.

Редактировать: Вот ошибки, которые я получаю:

enter image description here

1 Ответ

3 голосов
/ 05 декабря 2011

Вы должны использовать Список инициализаторов членов в C ++ для инициализации членов вашего класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...