상세 컨텐츠

본문 제목

using 키워드

C++/C++98

by deulee 2023. 6. 10. 01:02

본문

using은 뭘까?

using을 이용하여 네임스페이스를 명시적으로 만들 수 있다.

 

이 말이 무슨 말일까?

 

using 키워드를 다음과 같이 사용해보도록 하자.

 

예제 코드

#include <iostream>

namespace deulee {
	int num = 1;
}

using namespace deulee;

int main(void)
{
	std::cout << num << std::endl;
	return 0;
}

출력 결과

1

 

위와 같이 'using namespace deulee'를 하게 되면 '이름공간 deulee에 선언된 모든 것에 대해 이름공간 지정의 생략'을 명령하게 되는 것이다.

 

만약 이를 특정 변수나 함수에다가 지정하고 싶으면 다음과 같이 지정할 수도 있다.

using namespace deulee::num;

 

위와 같이 선언하면 'num을 이름공간 deulee에서 찾아라'라는 뜻이 된다.

 

주의사항

using 키워드를 남발하게 되면 어떻게 될까?

 

만약 우리가 굉장히 많이 사용하는 입출력 객체(cout, cin, endl)등을 사용할 때 앞에 계속 std라는 네임스페이스를 명시해야 하는게 귀찮은 경우가 있다.

 

이때, 선뜻 'using namespace std'라는 식으로 해당 std라는 네임스페이스에 선언된 모든 것을 std 지정의 생략을 하게 하는 경우가 있다.

 

std는 iostream, cmath, algorithm 등 수십개 파일에서 수백개의 이름등을 포함하고 있는 표준 파일이다. 이는 즉, 우리가 흔히 사용하는 함수명 혹은 변수명이 이미 사용되었을 수도 있다는 것이다. 이는 컴파일 에러를 일으키게 되며 문제를 일으킬 수 있다.

 

또한, 매우 거대한 파일에 고작 한개의 기능을 편하게 사용하고자 해당 네임스페이스에 using 키워드를 사용하는 것은 컴파일 단위에서 사용하지 않을 라이브러리를 끌어들이는 것은 컴파일의 시간을 늦추기만 할 뿐이다.

 

'C++ > C++98' 카테고리의 다른 글

C++에서의 구조체  (0) 2023.08.03
new 연산자  (0) 2023.08.03
C++의 새로운 입출력 - cout, endl, cin  (0) 2023.06.10
namespace - 이름공간  (0) 2023.06.10
C++98 글을 시작하며  (0) 2023.06.06

관련글 더보기