Как передать и вернуть структуру из функции в main из заголовочного файла
Здравствуйте, мне нужна помощь в этом, я пытаюсь вызвать функцию из моего заголовочного файла в мой основной, эта функция возвращает структуру.
Проблема здесь в том, что я не понимаю, как вызвать функцию, которая возвращает из нее структуру, я пробовал некоторые вещи, но ничего не получалось.
Выход
error: request for member 'Insert' in 'root', which is of pointer type 'TREE::tree*' (maybe you meant to use '->' ?) root = root.Insert(root, 9);
error: request for member 'Print' in 'root', which is of pointer type 'TREE::tree*' (maybe you meant to use '->' ?) root.Print(root);
Заголовочный файл
#ifndef _LibArb_H_ #define _LibArb_H_ struct Node{ int val; Node *left, *right; }; using namespace std; namespace TREE { class tree { private: Node *node; public: tree(); ~tree(); Node* Insert(Node *node, int val) // Returns a struct { if(node == NULL) // If no nodes then create a new one { node = new Node; node->val = val; node->right = node->left = NULL; } else if(node->val > val) node->left = Insert(node->left, val); // Insert value on the left node else node->right = Insert(node->right, val); // Insert value on the right node return node; // Return the value of node } void Print(Node *node) { if (node) { cout << "Val: " << node->val << endl; cout << "Left: " << node->left << endl; cout << "Right: " << node->right << endl; Print(node->left); Print(node->right); } } }; } # endif // _LibArb_H_
#include <iostream> #include "LibArb.h" using namespace std; using namespace TREE; // From the header file int main() { tree *root = NULL; // Create new root from the class tree of the header file root = root.Insert(root, 9); // New node with the number 9 on it root.Print(root); // Print all the nodes from the tree return 0; }
Что я уже пробовал:
root = root - & gt;Insert(root, 9); Fail
Insert (root, 9); Fail