0

コンパイラは言う

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

...
4

1 に答える 1

4

Nodeの中で宣言されているTreeので、必要です

Tree::Node * Tree::buildTree(Node *myNode, int h) 
于 2013-03-10T21:38:47.307 に答える