영역 결정 연산자(Scope Resolution Operator, ::)

C/C++ 2013. 5. 28. 20:17

C언어에서는 지역변수가 전역변수 보다 우선 순위를 갖는다. 이 지역변수의 사용영역(Scope) 밖에서만 전역변수에 접근을 할 수 있다.


하지만, C++에서는 같은 변수명을 갖는 지역변수의 사용영역 안에서도 영역 결정 연산자 ::를 붙여 전역변수에 접근을 가능하게 하고 있다.


int var = 100;

 

int main()

{

 int var = 200;

 

cout << ::var << endl;

 



실행결과

 

100


MFC 프로그래밍 팁 

 

영역 결정 연산자는 함수명 앞에 사용될 수 있다. 클래스의 멤버함수를 사용할 때 클래스명 다음에 영역 결정 연산자가 사용될 때는 해당 클래스에 속해 있는 함수임을 나타낸다. 

 

CWnd::MessageBox(_T("Hello~")); 

 

위 코드는 MessageBox 함수가 CWnd 클래스에 속해 있는 멤버함수라는 의미가 된다.

 

그러나 같은 이름으로 된 전역함수인 경우에는 함수명 앞에 그냥 영역 결정 연산자를 붙인다.

 

::myFunction( ~ ); 

반응형