기본 네임 스페이스는 전역 네임 스페이스입니다. 코드에 namespace
을 명시 적으로 추가하지 마십시오.
네임 스페이스가 작동하는 방식을 알지 못해서이 말을 듣고 있습니다. 그들의 임무는 범위를 지우는 것입니다. 그것들은 사물이 아닙니다. 그들은 어떤 기억도 가리 키지 않습니다. 그것들은 매우 부드럽습니다. 모든 파일은 네임 스페이스를 선언 할 수 있으며 그 안에 나타나는 모든 클래스, 구조체, 함수 등은 해당 네임 스페이스의 일부가됩니다. 다른 파일은 그렇지 않으면 동일한 네임 스페이스를 공유하는 통신 할 필요가 없습니다. 텍스트가 같으면 동일한 네임 스페이스입니다. 귀하의 코멘트에 회신에서
: 그리고 그들은 네임 스페이스에없는 당신이 var1
또는 var2
입력 정확히 것처럼 One::var1
및 Two::var2
, 같은 다른 번역 단위로 액세스 할 수 있습니다
namespace One {
intvar1;
}
namespace Two {
int var2;
}
- 당신을 의미 필요한 경우 extern
을 선언해야합니다.
공통 기본 네임 스페이스가있는 경우 namespace Base::One
또는 Base::Two
을 사용할 수 있습니다.
"작동하지 않습니다." <- 어떤 방법으로 작동하지 않습니까 ??? WTF 당신이하려고합니까? –
@BoPersson 절대적으로 옳았습니다. 그것은 저의 질문이었습니다. 그것은 또한 저 스레드에서 깔끔하게 대답되었습니다. 잘못 작성한 질문에 미안하지만 어떻게 든 삭제할 수 있습니까? Stackoverflow의 가치는 없지만, 다른 한편으로는 (3 가지) 기여금을 모두 neglegt하고 싶지는 않습니다. 어떻게해야합니까? – BillyJean