using 키워드
using 키워드는 namespace 로 선언된 부분의 함수나 변수에 접근할 때 좀 더 쉽게 접근하기 위한 방법을 제공하는데 사용법은 다음과 같다.
using a::function;
using namespace a;
- using a:function 은 namespace a 안에 있는 function 함수를 호출할 때 그냥 function 이라는 이름만으로 호출하겠다라는 뜻.
- using namespace a 는 namespace a안에 있는 변수나 함수는 그냥 접근하겠다는 뜻
두 가지 방법 중에 어느 것을 사용하는 것이 좋을까? 하는 질문에 답은 'using a::function 처럼 사용하는 것이 더 좋다' 이다. namespace 라는 개념이 등장한 이유는 변수나 함수의 이름 충돌을 막겠다는 뜻인다. using namespace a 라고 사용하면 언젠가는 이름 충돌이 발생할 수 있기 때문에 조금 복잡해 진다고 해도 using a:function 처럼 사용하는 것이 올바른 선택이아.
using std::cout;
using std::cin;
using std::endl;
전역변수에 접근하는 방법
int val = 100;
int main(void) {
int val = 50;
val += 1;
std::cout << ::val << std::endl;
return 0;
}
위의 코드를 실행하면 '51'을 출력한다. 하지만 아래 코드는 101을 출력한다. 물론 변수로 선언된 부분에서 전역변수와 지역변수 명이 같은 오류가 있지만 테스트를 위해 작성된 코드이다.
int val = 100;
int main(void) {
int val = 50;
::val += 1;
std::cout << ::val << std::endl;
return 0;
}
'C 언어 개열 > C++ ' 카테고리의 다른 글
포인터(Pointer) 변수와 레퍼런스(Reference) 변수의 이해 (0) | 2010.08.19 |
---|---|
const 키워드와 메모리 영역 (0) | 2010.08.19 |
이름공간(Namespace) (0) | 2010.08.19 |
디폴트(Default) 매개변수와 인라인 함수 (0) | 2010.08.19 |
함수 오버로딩(function overroding) (0) | 2010.08.18 |