首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++:类的名称与名称空间的名称相同

C++:类的名称与名称空间的名称相同
EN

Stack Overflow用户
提问于 2014-09-18 17:46:26
回答 2查看 130关注 0票数 2

在我的代码中,有时会出现一个类(例如AI),它是许多子类的接口,其名称都包含基类名称(例如AIFighter、AIMage、AIThief.)。唯一合乎逻辑的事情就是组织它:

代码语言:javascript
复制
struct AI
{
    virtual void think()=0;
};

namespace AI {
struct Fighter : public AI
{
    void think()
    {
        //attack something
    }
};
struct Mage : public AI
{
    void think()
    {
        //burn something
    }
};

//...

}

int main()
{
    AI * ai = new AI::Fighter;  // It's my target
}

但是它和我尝试过的任何其他想法(typedefs,内联名称空间,使用)都不起作用。有可能吗?它不仅在继承方面很有用,而且在围绕某个中心类构建的任何组中都是有用的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-18 20:10:46

使名称空间名称小写。

票数 1
EN

Stack Overflow用户

发布于 2014-09-18 19:02:37

我不会用代码示例来解决您的问题。原因是,你显然违反了我们以一种特殊方式做事的理由。

您有一个名称空间AI,以及一个结构AI,它位于AI命名空间之外。

你的问题的答案,在任何合理的条件下,是重新命名一个或另一个。这只是一个糟糕的设计。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25919178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档