namespace의 기본원리
학교에 소현이라는 같은 이름을 가진 친구가 있을 때, 한명은 6반 소현이, 다른 한명은 7반 소현이라고 불러 구분한다. namespace는 6반, 7반처럼 같은 소현이여도 구분이 되도록 그룹 영역을 만들어 이름붙인 것이라 보면 된다. 그래서 같은 이름의 함수나 변수가 존재하더라도 6반 소현이, 7반 소현이처럼 다른 namespace에 있으면 다른 변수, 다른 함수이다.
사용법
namespace BestCom {
void SimpleFunc(void) {
std::cout << "BestCom이 정의한 함수" << std::endl;
}
}
namespace ProgCom {
void SimpleFunc(void) {
std::cout << "ProgCom이 정의한 함수" << std::endl;
}
}
int main(voie) {
BestCom::SimpleFunc(); // "BestCom이 정의한 함수" 출력
ProgCom::SimpleFunc(); // "ProgCom이 정의한 함수" 출력
return 0;
}
:: 연산자
- 범위지정 연산자 (scope resolution operator)
namespace의 중첩
한 namespace안에 다른 namespace가 삽입될 수 있다.
namespace Parent{
int num = 2;
namespace SubOne {
int num = 3;
namespace SubTwo {
int num = 4;
}
}
}
- 총 서로 다른 값을 가지는 3개의 num
- Parent::num → 2
- Parent::SubOne::num → 3
- Parent::SubOne::SubTwo::num → 4
'C++' 카테고리의 다른 글
[C++] 인라인 함수 (Inline Function) (0) | 2022.01.05 |
---|---|
[C++] 함수 오버로딩 & 매개변수 디폴트 값 (Function overloading & default value) (0) | 2022.01.05 |