2011-12-25 3 views

답변

30

당신이 현재 네임 스페이스에 참고로하는 것에하는 이유에 대한 필요가 없습니다, 당신은 쉽게 작성할 수 있습니다

을 0
namespace myNamespace { 
    int myInt = 33; 
    void myFunc() { 
    myInt = 33; 
    } 
}; 

외부 변수 (예 : 글로벌 myInt)가 선언 된 것과 관계없이이 범위의 변수가 기본적으로 사용됩니다.

그러나 이름을 바꾸려면 replace 또는 refactor와 같은 IDE 기술을 사용할 수 있습니다.

18

좋은 질문입니다. 아니, 이런 건 아무것도 없어.

또한, myNamespace::myInt 중첩 된 네임 스페이스의 경우도 모호 아니라고주의 (당신이 namespace myNamespace { namespace myNamespace { … } }의 복잡한 케이스를 가지고 말을 당신이 정규화 된 네임 스페이스를 사용하는 데 필요한 안전을 위해 :.

.?를 ::을 접두사 이
::myNamespace::myInt = 33; 

글로벌 네임 스페이스를 참조

22

아니요, 실제로는 그런 것을하고 싶다면 위조 할 수 있습니다. 당신이 myNamespace 변경하는 경우

namespace myNamespace { 
    namespace _ns = ::myNamespace; 
    int myInt; 
    void myFunc() { 
    _ns::myInt = 66; 
    } 
} 

, 당신은 그것을 일치 _ns를 변경하기 만하면됩니다.

또한 네임 스페이스 다음의 세미콜론은 불필요합니다.

+1

나는 항상 네임 스페이스 할당을 잊어 버렸다! 그것이 내가 기억해야 할 속임수입니다. – fluffy

관련 문제