gpt4 book ai didi

c++ - 一个包含 3 个对象的类,它们有指向彼此的指针,以及一个用于传递对这些对象的引用的初始化列表。错误

转载 作者:行者123 更新时间:2023-11-28 08:23:59 25 4
gpt4 key购买 nike

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"

C_Agent::C_Agent() 
: parameters(), Sensors(& parameters), Effectors(& parameters),
Genome(& Sensors, & Effectors)
{
//setup parameters
Effectors.p_Genome = & Genome;
}

Sensors.h://#include "Genetics.h"

class C_Sensors
{
public:
s_agentParameters * p_parameters;
C_sensors(s_agentParameters * p_parametersRef);
};

Sensors.cpp://#include "Sensors.h"

C_Sensors::C_Sensors(s_agentParameters * p_parametersRef)
: p_parameters(p_parametersRef) {}

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"

C_Effectors::C_Effectors(s_agentParameters * p_parametersRef)
: p_parameters(p_parametersRef) {}

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"

C_Genome::C_Genome(C_Sensors * p_C_SensorsRef, C_Effectors * p_C_EffectorsRef)
: p_Sensors (p_C_SensorsRef), p_Effectors (p_C_EffectorsRef) {}

当我尝试编译它时,我得到 6 个错误“'class_name' 没有命名类型”和 6 个错误“ISO c++ 禁止声明没有类型的'class_name'”。我在 main 中也有代码试图初始化一些 C_Agent 对象。

最佳答案

如果你有一个循环依赖,你将需要在某处至少一个类名的前向声明。

关于c++ - 一个包含 3 个对象的类,它们有指向彼此的指针,以及一个用于传递对这些对象的引用的初始化列表。错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4726974/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com