循环C ++标题包括

时间:2011-03-09 00:51:17

标签: c++ header cycle

我正在使用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类识别。 有人可以帮我吗? 谢谢,

1 个答案:

答案 0 :(得分:3)

Neurone.h不应包含Layer.h,而是转发声明Layer:class Layer;。请参阅@Tim所指的链接。