2017-04-05 68 views
0

我在一个Pacman游戏项目(迷宫,食物,吃豆子,...)中有多个C++类。我创建了一个名为'Pacman_AI'的命名空间,以便可以在项目中的每个地方看到类。但是,我得到了'GameObject'类的错误:“名称后跟'::'必须是类或名称空间名称”。一个项目中的C++全局命名空间

这里是我的“GameObject.cpp”中,我得到上述错误:

namespace Pacman_AI{ 

vector <pair <int, int> > GameObject::getPoints(){ 
    return points; 
} 

string GameObject::getType(){ 
    return type; 
} 

} 

我已经定义我的“游戏对象”类在不同的文件“GameObject.h”。

非常感谢您的帮助。

+1

你的地方包括:宣布'GameObject' –

+0

头文件namespace请** [你的问题] [mcve]或[SSCCE(Short,Self Contained,Correct Example)](http://sscce.org) – NathanOliver

+0

不,你能解释为什么我应该包含头文件吗?我已经有一个全局命名空间。 –

回答

0

最简单的就是用你的头文件

// Foo.h 
namespace Pacman_AI{ 

// STUFF HERE 

}; 

,然后using namespace在您的.cpp文件

//Foo.cpp 
#include "Foo.h" 

using namespace Pacman_AI; 

// define your functions here 
+0

但是我可以从“Foo.h”中删除我的名称空间,它的功能与您的相同。 –

+0

我使用了命名空间,以便我可以从这些“包含”中转义出来。你知道像C#命名空间。 –

+1

@MahmoudArafa你不能'逃避'包括......你为什么会试图这样做呢? – AlexG