C++ cli C++;类读取为变量,默认类型为int?说什么?

C++ cli C++;类读取为变量,默认类型为int?说什么?,c++-cli,C++ Cli,所以,我有两个类…结构非常基本。我尝试将一个导入另一个,并声明该类类型的新对象…但是,它似乎将类名读取为变量名 下面提供的header类无法正确读取“ApplicationManager”类。 代码: 下面是“ApplicationManager”类的标题。 代码: 发生的错误告诉我,在“management”之前需要“;”,并且“ApplicationManager”缺少类型说明符,因此假定它是默认的int类型 …知道它为什么不能正确编译吗?其他人可以试试这个并报告结果吗?我复制了代码,并将其

所以,我有两个类…结构非常基本。我尝试将一个导入另一个,并声明该类类型的新对象…但是,它似乎将类名读取为变量名

下面提供的header类无法正确读取“ApplicationManager”类。 代码:

下面是“ApplicationManager”类的标题。 代码:

发生的错误告诉我,在“management”之前需要“;”,并且“ApplicationManager”缺少类型说明符,因此假定它是默认的int类型


…知道它为什么不能正确编译吗?其他人可以试试这个并报告结果吗?我复制了代码,并将其粘贴到另一个解决方案中,以查看是否有内容被破坏……它仍然不起作用。

您有一个循环引用。当
applicationmanager.h
中包含
game.h
时,编译器尚未读取
applicationmanager

若要修复,请拆下该线路

#include "game.h"

applicationmanager.h

为什么在
Game.h
applicationmanager.h
之间存在循环依赖关系


除此之外,我要说的是在
Application.H
中检查你的头部防护装置(
#ifdef.*\uh
)。C++中经常出现的一个问题是,当复制/粘贴代码或复制文件时,忘记为一个新类更改头保护器定义名称,因此,您最终得到了由相同定义守护的两个不同的头。在这种情况下,如果这两个文件都包含在其他文件中,那么实际上只有第一个文件会被扩展为任何有用的文件。

错误消息会产生误导。它基本上说“由于某种原因(可能是引用类型中的错误),我无法识别您正在使用的类型(在您的案例中是ApplicationManager)”。
如果您需要ApplicationManager了解游戏,请创建一个纯虚拟基类(其他术语中的接口),并让游戏继承该基类(不扩展接口),并让ApplicationManager包含基类头文件

这“覆盖”是怎么回事?这是c++/cli吗?######include行有什么用?
override
是一个VC++扩展,它不是c++/cli特有的,也可以在本机代码中使用,具有相同的语义。
####ifndef _APPMANAGER_H_  
####define _APPMANAGER_H_  
####include "game.h"  
####include "application.h"  
class ApplicationManager  
{  
public:  
    ApplicationManager(void);  
    ~ApplicationManager(void);  
private:  
};  
####endif  
#include "game.h"