gpt4 book ai didi

c++ - C++ 中的递归 header 包含错误

转载 作者:行者123 更新时间:2023-11-28 06:34:10 26 4
gpt4 key购买 nike

<分区>

我正在使用两个相互依赖的类。但是,当我编译程序时,我得到了一个无意义的异常描述。我已经减少了我的代码,仅当我在 Creature 头文件中包含 World.h 头文件时才显示错误。在实现前向声明或模板的机会之前抛出异常。此外,预处理器指令在我的情况下不起作用。

生物头:

#ifndef __CREATURE_H
#define __CREATURE_H
#include "World.h"
class Creature
{
public:
//World *world; -- This class only needs a pointer to world.
};
#endif

世界标题:

#ifndef WORLD_H
#define WORLD_H
#include "Creature.h"
class World
{
public:
Creature** world;
};
#endif

完成示例的驱动程序:

#include "World.h"
int main()
{
World world;
return 0;
}

Visual Studio 2012 的异常消息:

world.h(14): error C2143: syntax error : missing ';' before '*'
world.h(14): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int

我注意到在我的最小示例中,Intellisense 将在包含下划线并在悬停时显示:“包含文件 .. 包含自身”。这不会发生在我的大型项目中。但是,注释包含,取消注释其他类的实例化,然后编译项目会产生相同的错误。

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