Scope Resolution Operator
범위 확인 연산자 ::
은 특정 namespace에 포함되는 identifer 접근에 사용된다.
namespace foo { void init(void) { } // ① } namespace goo { void init(void) { } // ② } void init(void) { } // ③
앞선 글에서 설명했듯이, 각 ① ② ③ 함수는 모두 같은 이름을 갖지만 서로 각기 다른 namespace 안에 정의된 함수이다.
[C++] namespace
변수나 함수, 구조체 등에 사용되는 이름은 해당 요소를 지정하는 identifier이다. Identifier의 역할을 수행하려면 각 이름은 unique 해야 하는데.. 프로그램의 규모가 커 많은 함수가 포함될수록, 또
pandas-are-bears.tistory.com
따라서 원하는 특정 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 |