gpt4 book ai didi

c++ - 单个方法的命名空间 C++

转载 作者:行者123 更新时间:2023-11-30 01:30:26 25 4
gpt4 key购买 nike

假设我有一个头文件 Snake.h:

#include "SnakeBodyPart.h"
#include "GUI.h"
//...

SnakeBodyPart.h 是(除其他外):

#include "GUI.h"
class SnakeBodyPart {
private :
GUI::Orientation orientation;
}

最后是 GUI.h :

class GUI {
enum Orientation { NORTH, EAST, SOUTH, WEST };
}

现在在 Snake.cpp 中我想做以下事情:

void Snake::turn(){
if(bodyPart.getOrientation() == GUI::EAST){
//do something
else if (bodyPart.getOrientation() == GUI::SOUTH){
//do something
else if ...
}

我想你明白了。我想知道的是:是否可以为单个方法设置命名空间?就像将命名空间 GUI 赋予 Snake::turn,这样我就可以键入 bodyPart.getOrientation() == EAST ?

我在 Snake.cpp 中有一些具有不同 namespace 的枚举,我想通过为某些方法提供某些 namespace ,而不仅仅是 Snake.cpp 的 一个 namespace 来使代码更具可读性。这可能吗?

最佳答案

请注意,在您的示例中,GUI 不是命名空间而是类。

也就是说,在 turn() 中,您可以编写 using namespace GUI; 来访问 GUI 命名空间中的所有标识符,而无需明确限定他们。或者,您可以使用例如导入单个符号也使用 GUI::EAST;:

void Snake::turn(){
using namespace GUI;
if(bodyPart.getOrientation() == EAST){
//do something
else if (bodyPart.getOrientation() == SOUTH){
//do something
else if ...
}

关于c++ - 单个方法的命名空间 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4471142/

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