1. namespace란?
namespace란, 클래스, 상수, 변수, 함수, 구조체 등의 이름이 중복되어 컴파일 시 오류가 생기는 것을 방지하기 위해 도입된 개념이다. (예를 들어 하나의 프로그램을 여러 개발자가 개발하는 경우, A 개발자가 덧셈 기능을 수행하는 number()라는 이름의 함수를 구현했다고 하자. 그리고 B 개발자는 같은 이름의 number() 함수이지만, 뺄셈 기능을 수행하도록 작성하였다고 하자. A 개발자와 B 개발자가 작성한 소스를 합쳐서 컴파일하거나 두 개발자의 소스를 링크시킬 경우 number 함수가 어떤 기능을 수행하는지 알 수 없어 오류가 발생하게 된다. )
namespace abc{ //abc라는 이름공간 생성
...
}
namespace를 생성하는 방법은 위와 같다. 생성된 namespace 내에서 선언된 모든 요소들은 abc라는 이름공간을 가지게 된다.
이름공간(namespace) :: 이름(identifier)
생성된 namespace 내에 있는 이름을 사용하려면 위와 같이 쓰면 된다.
C++에서 출력을 할 때 std::cout 을 사용하는 것과 같은 방식이다.
2. std::란?
std는 C++의 표준 이름 공간으로, 모든 C++ 표준 라이브러리는 std 라는 이름공간에 만들어져 있다. 그러므로 cout, cin, endl 등 C++ 표준 라이브러리에서 선언된 이름을 사용할 때에는 std:: 를 앞에 써주어야 한다.
std::cout << "Hello World!" << std::endl;
3. using 지시어
그러나, C++ 코딩 시 자주 사용하는 cout, cin, endl 등등을 사용할 때마다 std::를 써주는 것은 여간 번거로운 일이 아닐 수 없다. using 지시어를 사용하면, std:: 생략이 가능하다. using 사용법에 대해서 알아보자.
using namespace 이름공간;
using namespace (이름공간); 이라고 써주면, 이름공간 내에 선언된 모든 요소들에 대해 앞에 이름공간::을 써주지 않아도 사용이 가능하게 된다. 따라서 std::를 생략하기 위해서는, 아래와 같이 써주면 된다.
using namespace std;
따라서 using namespace std; 구문을 적어주면 아래처럼 std::를 생략할 수 있다.
#include <iostream>
using namespace std;
int main(){
cout << "Hello World!" << endl;
}
'C++' 카테고리의 다른 글
[C++] - STL(표준 템플릿 라이브러리)에 대하여 (1) | 2023.12.28 |
---|---|
[C/C++] - 입력 개수를 모를때 (EOF까지 입력받기) (0) | 2023.12.13 |
[C++] - 1차원, 2차원 배열 동적 할당 (0) | 2023.12.08 |
[C++] - 동적 메모리 할당 (2) | 2023.12.07 |
[C++] - 시간초과가 발생하는 경우 해결 방법 (0) | 2023.11.29 |