[C++] 범위 지정 연산자(::)와 namespace

2021. 3. 30. 12:20 기타/C++

 

C++에서 :: 는 범위 지정 연산자로서 함수나 변수명 등을 namespace에 따라 구분할 때 사용됩니다. namespace는 명칭 영역이라는 말 그대로 변수나 함수들이 선언된 범위, 묶음이라고 생각하시면 됩니다.

std::string

위의 string t는 std namespace영역에서의 데이터 타입 string을 쓰겠다는 의미입니다. 

 

조금 더 살펴 보면, 

#include <iostream>
#include <string>
using namespace std;

namespace A{
    void hello(){
        cout << "I am A" << endl;
    }
}

namespace B{
    void hello(){
        cout << "I am B" << endl;
    }
}

int main(void)
{
    A::hello();
    B::hello();
}

 

결과

I am A
I am B

 

함수명은 hello로 같지만 범위 지정 연산자로 다른 영역에 있는 함수라는 걸 명시함으로써 다른 함수를 호출하게 해줍니다. 이로서, 같은 함수명을 써서 벌어지는 충돌을 피함과 동시에 코드를 관리하게 용이하게 해주는 이점을 노릴 수 있겠죠,



출처: https://engkimbs.tistory.com/44?category=688856 [새로비]

'기타 > C++' 카테고리의 다른 글

[C++] lambda 식  (0) 2021.03.30
[C++] vector쓸 시 주의할 점  (0) 2021.03.30
[C++] 시간 측정  (0) 2021.03.30
[C++] 표준 출력 정확도 조정  (0) 2021.03.30
[C++] 표준 입출력  (0) 2021.03.30
[C++]템플릿  (0) 2021.03.30
[C++] 클래스 템플릿 사용 Array 클래스 예제  (0) 2019.07.30
[C++] 함수 템플릿 사용 template<typename T>  (0) 2019.07.30