Scope Resolution Operator
범위 확인 연산자 ::
은 특정 namespace에 포함되는 identifer 접근에 사용된다.
namespace foo
{
void init(void) { } // ①
}
namespace goo
{
void init(void) { } // ②
}
void init(void) { } // ③
앞선 글에서 설명했듯이, 각 ① ② ③ 함수는 모두 같은 이름을 갖지만 서로 각기 다른 namespace 안에 정의된 함수이다.
따라서 원하는 특정 namespace의 init
함수를 호출하기 위해 이 범위 확인 연산자를 사용해야 한다.
① foo namespace
int main(void)
{
foo::init();
}
② goo namespace
int main(void)
{
goo::init();
}
③ global namespace
int main(void)
{
init(); // just like C, or
::init();
}
※ namespace가 명시되지 않고 ::
가 가장 먼저 사용되면 global namespace를 의미한다.
'C · C++' 카테고리의 다른 글
[C(++)] Header Guard (헤더 가드) Coding (0) | 2022.02.05 |
---|---|
[C] printf 함수 (0) | 2021.12.21 |
[C] const type qualifier (0) | 2021.12.21 |
[C++] namespace 사용 및 특징 (0) | 2021.12.18 |
[C++] namespace (0) | 2021.12.15 |