뚜둔뚜둔✩

판다의 개발일지

C · C++

[C++] 범위 확인 연산자 (::)

2021. 12. 15. 21:47

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

 

따라서 원하는 특정 namespaceinit 함수를 호출하기 위해 이 범위 확인 연산자를 사용해야 한다.


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