ожидаемый конструктор, деструктор или преобразование типов перед токеном «*»

Компилятор говорит

error: expected constructor, destructor, or type conversion before ‘*’ token"

и укажите на эту строку в .cpp:

Node * Tree::buildTree(Node *myNode, int h) {

Я предполагаю, что это может быть что-то typedef но не совсем уверен. В чем может быть проблема?

.h файл:

#ifndef TREE_H
#define TREE_H

class Tree {
public:
Tree();
Tree(Tree const & other);
~Tree();
Tree const & operator=(Tree const & other);

private:
class Node {
public:
Node() {
data = 0;
};
Node(Node const & other) {
_copy(other);
};
~Node() {};
Node const & operator=(Node const & other) {
if (this != &other)
_copy(other);
return *this;
};

Node *left;
Node *right;
int data;

private:
void _copy(Node const & other) {
data = other.data;
left = other.left;
right = other.right;
};
};

Node *root;

Node * buildTree(Node *myNode, int h);
};

.файл cpp:

...

Node * Tree::buildTree(Node *myNode, int h) {
if (h == 0)
return NULL;
myNode = new Node();
myNode->left = buildTree(myNode->left, h - 1);
myNode->right = buildTree(myNode->right, h - 1);
return myNode;
}

...

0

Решение

Node объявлен внутри Treeтак что тебе нужно

Tree::Node * Tree::buildTree(Node *myNode, int h)
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]