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

C++에서 앞에 붙는 이중 콜론(::)의 의미와 사용법

C++에서 변수나 함수 이름 앞에 붙는 이중 콜론(::)은 범위 지정 연산자(scope resolution operator)라고 불립니다. 이 연산자는 특정 식별자가 속한 범위를 명확하게 지정하는 역할을 하며, 대표적인 용도는 다음과 같습니다.

1. 클래스 외부에서 멤버 함수 정의하기

범위 지정 연산자를 사용하면 클래스 선언부 밖에서 멤버 함수를 정의할 수 있습니다. 클래스 내부에는 함수의 원형만 두고, 실제 구현은 클래스이름::함수이름 형태로 외부에 작성하는 방식입니다. 이를 보여주는 예제 프로그램은 다음과 같습니다.

예제 코드

#include<iostream>
using namespace std;
class Example {
    int num;
    public:
    Example() {
        num = 10;
    }
    void display();
};
void Example::display() {
    cout << "The value of num is: " << num;;
}
int main() {
    Example obj;
    obj.display();
    return 0;
}

실행 결과

위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.

The value of num is: 10

Example::display()처럼 작성함으로써 컴파일러에게 이 함수가 Example 클래스에 속한 멤버 함수임을 명확히 알려줄 수 있습니다.

2. 이름이 같은 지역 변수가 있을 때 전역 변수 접근하기

지역 변수와 전역 변수의 이름이 동일한 경우, 기본적으로 지역 변수가 우선됩니다. 이때 앞에 아무것도 붙지 않은 이중 콜론(::변수이름)을 사용하면 전역 변수에 명시적으로 접근할 수 있습니다. 이를 보여주는 예제 프로그램은 다음과 같습니다.

예제 코드

#include<iostream>
using namespace std;
int num = 7;
int main() {
    int num = 3;
    cout << "Value of local variable num is: " << num;
    cout << "\nValue of global variable num is: " << ::num;
    return 0;
}

실행 결과

위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.

Value of local variable num is: 3
Value of global variable num is: 7

num만 사용하면 값이 3인 지역 변수가 출력되지만, ::num을 사용하면 값이 7인 전역 변수가 출력되는 것을 확인할 수 있습니다.

정리

앞에 붙는 이중 콜론(::)은 C++의 범위 지정 연산자로, ① 클래스 외부에서 멤버 함수를 정의하고, ② 이름 충돌이 발생했을 때 전역 변수에 접근하는 데 활용됩니다. 네임스페이스나 클래스의 정적 멤버에 접근할 때도 같은 원리로 사용되므로, C++ 프로그래밍에서 반드시 익혀두어야 할 핵심 연산자입니다.