Заголовок C ++ и объявление Вложенная структура и синтаксис класса - PullRequest
0 голосов
/ 17 марта 2019

Итак, я пытаюсь определить заголовочный файл и файл декларации с соответствующим кодом.В моем классе я использую структуру, а затем использую члены Structs для инициализации других функций.Я не уверен, как сделать путь, чтобы связать класс и структуру с соответствующей функцией, и надеялся, что кто-то может помочь.Это мой заголовочный файл здесь.

class AVL {
public:
    struct node {
        int data;
        node* left;
        node* right;
        int height;
    };
    node* root;
    node* insert(int key, node* tree);
    node* oneright(node*& tree);
    node* oneleft(node*& tree);
    node* twoleft(node*& tree);
    node* tworight(node*& tree);
    int height(node* tree);
    int getBalance(node* tree);
    int preorder(node* tree);
    AVL();
    node* insert(int key);
    void parsetree();
    vector<int> vvector;
    vector<int> hvector;
    vector<int> bfvector;
};

Основная проблема, с которой я сталкиваюсь, заключается в том, как объявить это в файле .cpp здесь. Например, если я хочу сделать функцию вставки, как бы я правильно сделал синтаксис,Для этого у меня есть

node* AVL::node::insert(int key, node* tree)

Но это вызывает у меня ошибку, и я не смог ничего найти при поиске.Спасибо!

1 Ответ

1 голос
/ 17 марта 2019

В AVL.h

    class AVL {
    node* root;
    node* insert(int key, node* root);
    node* insert(int key);
};

в AVL.cpp

AVL::node* AVL::insert(int key, AVL::node* root) {
    //code here...
}

AVL::node* AVL::insert(int key) {
//code here...
}

Как отмечается в одном из комментариев, вставка не является членом структуры узла.

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