我正在使用C ++创建一个神经网络,并且我遇到了包含头文件的严重问题 看看这段代码:
Neurone.cpp:
//NEURONE.CPP
#include "stdafx.h"
#include "Neurone.h"
#include <cmath>
using namespace std;
Neurone::Neurone(Layer* current,Layer* next)
{
}
Neurone.h:
//NEURONE.H
#ifndef _NEURONE_H
#define _NEURONE_H
#include <vector>
#include "Layer.h"
class Neurone
{
public:
Neurone(Layer* current,Layer* next);
private:
};
#endif
Layer.cpp:
// LAYER.CPP
#include "stdafx.h"
#include <vector>
#include "Layer.h"
using namespace std;
Layer::Layer(int nneurone,Layer &neighborarg)
{
}
Layer.h:
//LAYER.H
#ifndef _LAYER_H
#define _LAYER_H
#include <vector>
#include "Neurone.h"
class Layer
{
public:
Layer(int nneurone,Layer &neighborarg);
//ERROR :C2061 Layer:Syntax error :Bad identifier
private:
//std::vector <Neurone*> NeuronesInLayer;
Neurone ANeuron;
//ERROR :C2146 Syntax error :wrong identifier
};
#endif
Main.cpp的:
//MAIN.CPP
#include "Neurone.h"
//#include "Layer.h"
int main()
{
return 0;
}
我使用VC ++ 2010,我无法理解为什么我的类Neurone不被Layer类识别。 有人可以帮我吗? 谢谢,
答案 0 :(得分:3)
Neurone.h不应包含Layer.h,而是转发声明Layer:class Layer;
。请参阅@Tim所指的链接。