홈 > IT > IT정보
IT정보

[C++] 이름공간(name space)과 using 선언

3 Selovic 0 115 0 0
C++에는 name space 라는것이 존재하는데, 활용하는이유는 간단합니다.

* 여러 라이브러리를 활용하려고 할 때,
함수명이 같은 경우 이름충돌현상을 막을 수 있습니다.
대표적인 형태는 아래와 같습니다
std::cout<<"hacure";


바로 std 이름공간안에 있는 cout 함수를 사용하는 것인데요
C++에서 사용하는 대부분의 표준이 std에 지정되어있기때문에
대부분의 함수를 사용하려면 std를 사용해야된다는 것!

추가로, 동일한 이름공간 안에 존재하는 함수는
이름공간을 언급하지 않고 사용이 가능하고,
이름공간은 계층구조처럼 활용이 가능합니다
예를들면
hacure::hacuresoft::website

이런식으로 계층구조로 만들 수 있습니다.

하지만 매번 이렇게 사용한다면 너무 길기 때문에
별칭을 부여할 수도 있습니다.

상단 전처리기 부분에 아래와 같이 추가해줍니다
namespace hhw = hacure::hacuresoft::website;

그렇다면 앞으로 hhw 라고 이름공간을 부를 수 있게 됩니다.

<using 선언>

앞서 말씀드렸던것 처럼,
C++ 대부분의 표준함수가 std에 속해 있습니다.
다르게 말씀드리면 간단한 출력이나 입력을 하기 위하여
cout, cin 등의 함수를 사용하기 위해서도
std 네임스페이스를 호출해야 하는데요,
매번 번거롭기 때문에 using 선언을 할 수 있습니다.

using std::cin;

cin 함수를 사용할 때에는 std 이름공간을 언급하지않겠다는 선언입니다.

using namespace std;

std안에 포함되어있는 함수는 이름공간을 언급하지 않겠다는 선언입니다.

아주 유용하고 좋은 기능이지만
무분별하게 사용하면 namespace의 존재를
무의미하게 만들 수 있기때문에
매우 선별적으로 사용하는것을 추천합니다.

간단한 using 선언예시를 보여드리겠습니다.
살펴보면서 확인하시기 바랍니다.

#include <iostream> 
using namespace std;

int main() {
	cout << "너비를 입력하세요>>";
	
	int width;
	cin >> width; // 키보드로부터 너비를 읽어 width 변수에 저장

	cout << "높이를 입력하세요>>";

	int height;
	cin >> height; // 키보드로부터 높이를 읽어 height 변수에 저장

	int area = width*height;	 // 사각형의 면적 계산
	cout << "면적은 " << area << "n"; // 면적을 출력하고 다음 줄로 넘어감
} 

0 Comments
Category
Facebook Twitter GooglePlus KakaoStory KakaoTalk NaverBand
PlusFriend Chat