Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ 범위 지정 연산자(::)의 개념과 활용법

C++ 범위 지정 연산자란?

C++에서 범위 지정 연산자(scope resolution operator)::는 다양한 용도로 활용되는 중요한 연산자입니다. 대표적인 사용 사례는 다음과 같습니다.

  • 전역 변수 접근: 지역 변수와 전역 변수의 이름이 동일할 때, 범위 지정 연산자를 사용하여 전역 변수에 접근할 수 있습니다.
  • 클래스 외부 함수 정의: 클래스 멤버 함수를 클래스 외부에서 정의할 때 사용됩니다.
  • 정적 변수 접근: 클래스의 static(정적) 변수나 정적 멤버 함수에 접근할 때 사용됩니다.

범위 지정 연산자 예제

다음은 C++에서 범위 지정 연산자를 사용하는 예제 코드입니다.

#include <iostream>
using namespace std;
char a = 'm';
static int b = 50;

int main() {
    char a = 's';

    cout << "The static variable : " << ::b;
    cout << "\nThe local variable : " << a;
    cout << "\nThe global variable : " << ::a;

    return 0;
}

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

The static variable : 50
The local variable : s
The global variable : m

코드 분석

이 예제에서 주목해야 할 부분을 살펴보겠습니다.

1. 이름 충돌 상황: 전역 변수 a(값: 'm')와 main() 함수 내부의 지역 변수 a(값: 's')가 같은 이름으로 선언되어 있습니다. 이런 경우 일반적으로 지역 변수가 우선권을 가지므로, a만 출력하면 지역 변수의 값인 's'가 나타납니다.

2. 전역 변수 접근: 변수 앞에 ::를 붙여 ::a로 작성하면 컴파일러에게 전역 범위의 변수를 참조하라고 명시적으로 알려주게 되며, 결과적으로 전역 변수의 값인 'm'이 출력됩니다.

3. 정적 변수 접근: 마찬가지로 ::b를 통해 전역으로 선언된 static 변수의 값 50에 접근하여 출력합니다.

이처럼 범위 지정 연산자는 변수 이름이 중복되는 상황에서 코드의 의도를 명확하게 표현하고, 원하는 범위의 변수에 정확히 접근할 수 있도록 도와주는 필수적인 도구입니다.