gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:21:16 25 4
gpt4 key购买 nike

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

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
}

但它和我尝试过的任何其他想法(typedef、内联 namespace 、使用)都不起作用。是否可以?它不仅适用于继承,而且适用于围绕某个中心类构建的任何组。

最佳答案

使命名空间名称小写。

关于C++:类的名称与命名空间的名称相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25919178/

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