[英]A class containing 3 objects, which have pointers to each other, and an initialisation list to pass references to those objects. ERROR
Agent.h
: //#include "Genetics.h" "Sensors.h" "Effectors.h" Agent.h
://#include“ Genetics.h”“ Sensors.h”“ Effectors.h”
class C_Agent
{
public:
C_Agent();
C_Genome Genome;
C_Sensors Sensors;
C_Effectors Effectors;
s_agentParameters parameters;
};
Agent.cpp
: //#include "Agent.h" Agent.cpp
://#include“ Agent.h”
C_Agent::C_Agent()
: parameters(), Sensors(& parameters), Effectors(& parameters),
Genome(& Sensors, & Effectors)
{
//setup parameters
Effectors.p_Genome = & Genome;
}
Sensors.h
: //#include "Genetics.h" Sensors.h
://#include“ Genetics.h”
class C_Sensors
{
public:
s_agentParameters * p_parameters;
C_sensors(s_agentParameters * p_parametersRef);
};
Sensors.cpp
: //#include "Sensors.h" Sensors.cpp
://#include“ Sensors.h”
C_Sensors::C_Sensors(s_agentParameters * p_parametersRef)
: p_parameters(p_parametersRef) {}
Effectors.h
//#include "Genetics.h" Effectors.h
//#include“ Genetics.h”
class C_Effectors
{
public:
s_agentParameters * p_parameters;
C_Genome * p_Genome; //forbids declaration w/ no type
C_Effectors(s_agentParameters * p_parametersRef);
};
Effectors.cpp
: //#include "Effectors.h" Effectors.cpp
://#include“ Effectors.h”
C_Effectors::C_Effectors(s_agentParameters * p_parametersRef)
: p_parameters(p_parametersRef) {}
Genetics.h
: //#include "Sensors.h" "Effectors.h" Genetics.h
://#include“ Sensors.h”“ Effectors.h”
class C_Genome
{
public:
C_Sensors * p_Sensors; //forbids declaration w/ no type
C_Effectors * p_Effectors; //forbids declaration w/ no type
C_Genome(C_Sensors * p_C_SensorsRef, C_Effectors * p_C_EffectorsRef);
};
Genetics.cpp
: //#include "Genetics.h" "Sensors.h" "Effectors.h" Genetics.cpp
:///#include“ Genetics.h”“ Sensors.h”“ Effectors.h”
C_Genome::C_Genome(C_Sensors * p_C_SensorsRef, C_Effectors * p_C_EffectorsRef)
: p_Sensors (p_C_SensorsRef), p_Effectors (p_C_EffectorsRef) {}
When I try to compile this, I get 6 errors of "'class_name' does not name a type" and 6 errors of " ISO c++ forbids declaration of 'class_name' with no type". 当我尝试对此进行编译时,出现6错误“'class_name'未命名类型”和6错误“ ISO c ++禁止声明'class_name'无类型”。 I also have code in main that attempts to initialize some C_Agent objects.
我在main中也有尝试初始化一些C_Agent对象的代码。
如果具有循环依赖关系,则需要在某处至少声明一个类名。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.