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