이름공간(namespace), 범위지정연산자(scope resolution operator) 개념
* 이름공간(namespace) 개념
- 이름을 붙여놓은 공간(특정 영역에 이름을 붙여주기 위한 문법적 요소)
- 서로 다른 공간에 같은 이름을 가진 함수를 각자 불러 주기 위한 분할 처리
- 동일 이름공간에 정의된 함수는 이름공간을 명시할 필요가 없다
- 이름공간은 중첩 가능
* 범위지정 연산자(::, scope resolution operator)의 이름공간 지정 기능
- 이름 공간을 지정할 때 사용하는 연산자
예시) std::cout << "김띠~" << std::endl; <= std 이름공간에 있는 cout과 endl 을 사용
* using을 이용한 이름공간 명시
예시1) using std::cout;
cout << "김띠~" << std::endl;
예시2) using namespace std;
cout << "김띠~" << endl;
* 이름공간 별칭 지정
- AAA::BBB::CCC 를 namespace ABC = AAA::BBB::CCC; 로 ABC라는 접근 별칭을 지정 가능
* 범위지정 연산자(::, scope resolution operator)의 다른 기능
- 지역변수에 의해 가려진 전역 변수에 접근
예시)
int val = 100; //전역 변수
int simpleFunc(void)
{
int val = 20; //지역 변수
val += 3; //지역 변수 23
::val += 7; //전역변수 val 값 7 증가로 107
}
- 이름을 붙여놓은 공간(특정 영역에 이름을 붙여주기 위한 문법적 요소)
- 서로 다른 공간에 같은 이름을 가진 함수를 각자 불러 주기 위한 분할 처리
- 동일 이름공간에 정의된 함수는 이름공간을 명시할 필요가 없다
- 이름공간은 중첩 가능
* 범위지정 연산자(::, scope resolution operator)의 이름공간 지정 기능
- 이름 공간을 지정할 때 사용하는 연산자
예시) std::cout << "김띠~" << std::endl; <= std 이름공간에 있는 cout과 endl 을 사용
* using을 이용한 이름공간 명시
예시1) using std::cout;
cout << "김띠~" << std::endl;
예시2) using namespace std;
cout << "김띠~" << endl;
* 이름공간 별칭 지정
- AAA::BBB::CCC 를 namespace ABC = AAA::BBB::CCC; 로 ABC라는 접근 별칭을 지정 가능
* 범위지정 연산자(::, scope resolution operator)의 다른 기능
- 지역변수에 의해 가려진 전역 변수에 접근
예시)
int val = 100; //전역 변수
int simpleFunc(void)
{
int val = 20; //지역 변수
val += 3; //지역 변수 23
::val += 7; //전역변수 val 값 7 증가로 107
}
댓글
댓글 쓰기