이의 내가 헤더 파일 Snake.h 있다고 가정 해 봅시다 :네임 스페이스 ++
#include "SnakeBodyPart.h"
#include "GUI.h"
//...
을 그리고 SnakeBodyPart.h은 (무엇보다도)입니다 :
#include "GUI.h"
class SnakeBodyPart {
private :
GUI::Orientation orientation;
}
그리고 마지막으로 GUI에서
. 시간 : Snake.cpp에서 지금class GUI {
enum Orientation { NORTH, EAST, SOUTH, WEST };
}
난 다음을 수행 할 :
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에 다른 네임 스페이스가있는 enum이 몇 개 있는데 특정 메서드에 특정 네임 스페이스를 지정하여 코드를 더 읽기 쉽게 만들고 싶습니다. 네임 스페이스 (Snake.cpp 용)이 아닙니다. 이것이 가능한가?
왜 "GUI.h"를 두 번 snake.h와 SnakeBodyPart.h에 포함합니까? 정적 함수 여야하고, 그렇지 않으면 객체를 인스턴스화하여 호출해야합니다. 왜 네임 스페이스인지, 정적 함수를 사용하십시오. 클래스 함수가 아닌 네임 스페이스에 모든 enum을 모으십시오. – DumbCoder
당신의 대답은 나에게 전혀 의미가 없습니다. – Aerus
else-if 체인을 피하기 위해 (bodyPart.getOrientation())을 전환 할 수 있습니다. –