반응형
namespace A
{
int a;
}
이 namespace의 이름은 A 이다.
그렇다면 이건 어떤가?
namespace
{
int a;
}
이 namespace는 이름이 없다.
이런 네임스페이스를 익명 네임스페이스 ( anonymous namespace ) 다.
그렇다면 이건 어떻게 동작할까?
익명 네임스페이스는 자신이 위치한 파일 내에서만 존재한다.
some_header.h 에
namespace
{
int a;
}
가 있다면 some_header.h 에서는 int a 에 접근 가능하지만 other_header.h 에서는 이 익명 네임스페이스에 접근이 불가능하다.
static 과 동일한 역할을 한다고보면된다.
static int a 가 전역변수로 있다면 이 변수는 다른 파일에서는 접근 불가능 하지 않는가? 이와 똑같다.
변수 int a 에 대한 접근은 그냥 일반변수 int a를 쓰는것처럼 a = 3; 이렇게 접근 하면된다. 따로 ::를 붙여줄 필요가없다.
그렇다면 이걸 왜 쓰는것일까?
변수의 중복문제, 이 파일내에서만 필요한경우 등 설계를 깔끔하게 하기위한 도구라고 보면된다.
반응형
'C,C++' 카테고리의 다른 글
[C++] std::list 에서 std::advance / 백준 1406번 에디터 (0) | 2019.12.21 |
---|---|
c++ 정규식으로 숫자에 콤마찍기 (0) | 2019.10.27 |
백준 1620번 풀면서 c++ map (0) | 2019.10.19 |
[C/C++] 비주얼스튜디오 2015 평가판 연장 방법 , 평생 무료 (0) | 2017.03.03 |
[C/C++] WinINet vs WinHTTP in MSDN (0) | 2017.02.23 |
댓글