您可以将任何东西放在名称空间中,但不能将名称空间放在事物中(这不是一种非常正式的说法,但我希望您明白我的意思。
有效的
namespace foospace
{
class foo
{
public :
foo();
~foo();
void eatFoo();
};
}
无效的
namespace foospace
{
class foo
{
public :
foo();
~foo();
namespace eatspace
{
void eatFoo();
}
};
}
我不能 100% 确定第二个示例不会编译,但无论如何,你不应该这样做。
现在,从您的评论看来,您想要这样的东西:
在文件Entity.h
中,您的实体类定义:
namespace EntitySpace
{
class Entity
{
public :
Entity();
~Entity();
};
}
在文件中Player.h
#include "Entity.h"
namespace EntitySpace
{
class Player : public Entity
{
public :
Player();
~Player();
};
}
在文件 main.cpp
#include "Player.h"
int main()
{
EntitySpace::Player p1;
EntitySpace::Player p2;
}
所以你Player
在 EntitySpace 命名空间中调用。希望这能回答你的问题。