Это заголовочный файл для моего двоичного дерева. У меня есть класс, называемый TreeNode, и, конечно, класс BinaryTree имеет указатель на его корень.ошибка C2143: синтаксическая ошибка: отсутствует ';' перед '*' при объявлении указателя
И я получил следующие три ошибки
error C2143: syntax error : missing ';' before '*'
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
и код для заголовка файла BinaryTree появляется
#pragma once
#include <fstream>
#include <iostream>
#include "Node.h"
using namespace std;
class BinaryTreeStorage
{
private:
TreeNode* root;
public:
//Constructor
BinaryTreeStorage(void);
//Gang Of Three
~BinaryTreeStorage(void);
BinaryTreeStorage(const BinaryTreeStorage & newBinaryTreeStorage);
BinaryTreeStorage& operator=(const BinaryTreeStorage & rhs);
//Reading and writing
ofstream& write(ofstream& fout);
ifstream& read(ifstream& fin);
};
//Streaming
ofstream& operator<<(ofstream& fout, const BinaryTreeStorage& rhs);
ifstream& operator>>(ifstream& fin, const BinaryTreeStorage& rhs);
ошибки быть в строке 11
TreeNode* root;
я провел несколько дней, пытаясь избавиться от этой ошибки и полностью опустошить.
Является ли эта ошибка неправильным пространством имен? Или, может быть, класс TreeNode не объявлен правильно?
И только в случае, если код для заголовка файла TreeNode
#pragma once
#include <string>
#include "BinaryTreeStorage.h"
using namespace std;
class TreeNode
{
private:
string name;
TreeNode* left;
TreeNode* right;
public:
//Constructor
TreeNode(void);
TreeNode(string data);
//Gang of Three
~TreeNode(void);
TreeNode(const TreeNode* copyTreeNode);
//Reading and writing
ofstream& write(ofstream& fout);
//Add TreeNode
void addTreeNode(string data);
//Copy tree
void copy(TreeNode* root);
};
Спасибо заранее.
Спасибо всем за ответ на вопрос, это было действительно глупо. Вот что происходит, если вы программируете C# до C++. –