比方说,我有一个头文件Snake.h:命名空间的单一方法,C++
#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不同的命名空间的几个枚举,并想使代码更readible,通过给予一定的方法的某些命名空间,而不只是一个命名空间为Snake.cpp。这可能吗?
为什么要包含“GUI.h”两次,snake.h和SnakeBodyPart.h?必须是静态函数,否则必须实例化对象以调用它们。为什么命名空间使用静态函数。将所有枚举收集在一个名称空间中而不是类函数中。 – DumbCoder 2010-12-17 14:08:20
你的回答对我来说绝对没有意义。 – Aerus 2010-12-17 14:15:17
另请注意,您可以切换(bodyPart.getOrientation())以避免else-if链。 – 2010-12-18 00:39:58