Подтвердить что ты не робот

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

Я честно понятия не имею, почему это происходит. Я проверил, дважды проверял и трехкратно проверял фигурные скобки, точки с запятой, перемещал конструкторы и т.д., И это все равно дает мне эту ошибку.

Соответствующий код следует.

BinTree.h

#ifndef _BINTREE_H
#define _BINTREE_H

class BinTree
{
private:
    struct Node
    {
        float data;
        Node *n[2];
    };
    Node *r;

    Node* make( float );

public:
    BinTree();
    BinTree( float );
    ~BinTree();

    void add( float );
    void remove( float );

    bool has( float );
    Node* find( float );
};

#endif

И BinTree.cpp

#include "BinTree.h"

BinTree::BinTree()
{
    r = make( -1 );
}

Node* BinTree::make( float d )
{
    Node* t = new Node;
    t->data = d;
    t->n[0] = NULL;
    t->n[1] = NULL;
    return t;
}
4b9b3361

Ответ 1

Потому что на линии:

Node* BinTree::make( float d )

тип Node является членом class BinTree.

Сделайте это:

BinTree::Node* BinTree::make( float d )