반응형

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

반응형


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

반응형

'Language & Solution > C++' 카테고리의 다른 글

[C++] 시간 측정  (0) 2017.04.14
[C++] 표준 출력 정확도 조정  (0) 2017.04.14
[C++] 표준 입출력  (0) 2017.04.14
[C++]템플릿  (0) 2017.04.11
Hello world  (0) 2017.04.01

이 글을 공유하기

댓글

Designed by JB FACTORY