프로그래밍 언어/C++

namespace와 std::

· 코딩마이데이

namespace

이름 공간생성하는 방법은 다음과 같이 namespace 키워드 위에 자신만의 공간 이름을 짓고 '{'와 '}'로 묶는다.

namespace kit { // kit라는 이름 공간 생성
	// 이곳에 선언하는 모든 이름은 kit 이름 공간에 생성된 이름
}

 

그리고 이름을 이용하기 위해서는 다음과 같이 이름 공간을 함께 사용합니다.

이름공간(namespace) :: 이름(identifier)

 

::는 범위 지정 연산자로서 C++ 표준 연산자입니다.

 

std::란?

std는 C++ 표준에서 정한 표준 이름 공간으로서, 모든 C++ 표준 라이브러리는 std 이름 공간에 만들어져 있습니다. 그러므로 응용 프로그램이 C++ 표준 라이브러리에서 선언된 이름(identifier)을 사용할 때, std::를 접두어로 붙여야 합니다. 

std::cout << "Hello" << std::endl;

 

std::의 생략과 using 지시어

std 이름 공간에 선언된 수많은 이름에 대한 사용할 때마다 std:: 접두어룰 붙이는 것은 상당히 번거롭다. using 지시어를 이용하면 이름 공간 접두어를 생략할 수 있는데, 다음은 cout 앞의 std::를 생략하도록 using 지시어를 사용한 사례입니다.

using std::cout; // cout에 대해서만 std:: 생략
........................
std::cout << "Hello" << std::endl; // std::cout에만 std:: 생략

 

앞의 using 지시어는 cout 이름이 std 이름 공간에 선언된 이름임을 공표함으로써, 지시어 아래 모든 코드에서 cout 앞에 std::를 생략할 수 있습니다. 그러나 endl 앞에는 std::를 생략할 수 없습니다.

 

만일, std 이름 공간에 선언된 모든 이름에 대해 std::를 생략하거자 한다면, 다음과 같이 namespace 키워드와 함께 using 지시어를 사용하면 됩니다.

using namespace std; // std 이름 공간에 선언된 모든 이름에 std:: 생략
...............................
cout << "Hello" << endl; // cout과 endl 앞에 std:: 생략

 

 

#include <iostream>과 std

C++ 표준에서 지원되는 모든 라이브러리는 std 이름 공간 안에 구현되어 있기 때문에 <iostream> 헤더 파일 내에 선언된 모든 클래스, 객체, 함수들을 사용할 때 std::를 생략하려면 다음과 같이 합니다.

#include <iostream>
using namespace std;

 

using namespace std;를 이용하여 코드를 작성하면 다음과 같습니다.

#include <iostream> // cout과 << 연산자 포함
using namespace std;

// C++ 프로그램은 main() 함수에서부터 실행을 시작한다.
int main() {
	cout << "Hello\n"; // 화면에 Hello를 출력하고 다음 줄로 넘어감
	cout << "첫 번째 맛보기입니다.";
	return 0; // main() 함수가 종료하면 프로그램이 종료됨
}

 

'프로그래밍 언어 > C++' 카테고리의 다른 글

객체 생성과 객체 활용  (0) 2026.05.31
C++ 클래스 만들기  (0) 2026.05.28
키보드로 문자열 입력  (0) 2026.05.25
키 입력 받기  (1) 2026.05.22
프로그램의 기본 요소와 화면 출력  (0) 2026.05.16