본문 바로가기

PL/C & C++

[C++] 네임스페이스(namespace) 란?

네임스페이스가 뭔지 알기 전에 아주 간단한 Hello World 예제를 살펴봅시다.

C++에서 Hello World 를 찍어내려면

와 같이 입력하면 됩니다.

C를 미리 공부하셨다면, C에서의 HelloWorld 예제랑 차이점을 몇가지 찾아낼 수 있을 것이고 이런 질문을 하겠죠..

 

※ 일단, 헤더파일부터 다르네요. => 그거야 사용하는 함수가 다르니까 헤더파일이 다른 것이겠죠? 

C 언어에서는 printf 함수를 사용했다면, C++ 에서는 cout이라는 함수를 사용합니다. 

cout 함수를 사용하기 위해 "iostream"(input/output stream 이라는 뜻입니다.) 헤더파일을 인용한 것입니다.

 

※ 엥? 그렇다면 using namespace std; 는 뭐죠? 처음 보는 건데?

=> 이 질문을 받기 위해서 제가 Hello World 예제를 먼저 해보자고 한 겁니다.

using namespace std; 이거 그냥 그대로 읽어봅시다. "std라는 네임스페이스를 사용하며..."라고 해석됩니까?

그렇습니다. 이 문장은 우리가 std라는 네임스페이스를 사용할 수 있게 해줍니다.

여기서 std는 많이 본 약자죠? 그렇습니다. standard의 약자입니다. 

즉, 

using namespace std; // 이 문장은 표준 네임스페이스를 사용하겠다는 의미입니다.


자 이제, 네임스페이스가 뭔지 알아보죠. 

using namespace 선언은 말 그대로 소속을 알리는 역할을 합니다. 그러니까 네임스페이스는 변수 이름이나 함수 이름과 같이 명칭을 사용하는 공간으로 소속을 나타낸다고 표현할 수 있습니다. 예를 들어, 영희네 강아지도 멍멍이이고, 철수네 강아지도 멍멍이에요. 둘이 어떻게 구분하죠? 둘 다 멍멍이면 구별 안되죠? 우리는 구별하기 위해서 영희네 멍멍이, 철수네 멍멍이라고 언급할 수 있습니다. 여기서 영희, 철수라고 하는 '소속'을 네임스페이스라고 생각하면 됩니다.

 

 네임스페이스는? 소속! 

 

namespace는 다음과 같은 형태로 사용되어집니다.

 

 

자, 이제 바로 네임스페이스 예제를 들여다 봅시다.

예제의 결과값은 300 300 100 200 입니다.

예제를 자세히 보시면 또 알 수 있다시피 네임스페이스의 변수 및 함수의 사용은

 

 

의 꼴로 사용됩니다.

FUNC를 메인 함수에서 사용하지 않았는데, 이 부분은 여러분이 유연하게 예제를 고쳐가면서 직접 사용해보세요.

함수를 사용하는 것은 변수 사용하는 것과 동일합니다.

 

이 예제를 통해서 얻어가야 할 것은 네임스페이스라는 소속 공간에 따라서 변수나 함수가 같은 이름임에도

다른 식으로 구분이 될 수 있다는 것을 아셔야 합니다. 

 

그리고 네임스페이스 안에도 함수가 들어가죠. 마치, 하나의 객체 같지 않나요? 

C++ 도 객체지향언어(OOP)입니다. 즉, 네임스페이스가 C++에서의 하나의 객체 단위가 된다고 생각할 수도 있곘습니다! :)




 

네임스페이스(namespace) 란?

사진 출처: www.SoftwareTestingHelp.com 네임스페이스(namespace)란 무엇인가? 네임스페이스가 뭔지 알기 전에 아주 간단한 Hello World 예제를 살펴봅시다. C++에서 Hello World 를 찍어내려면 #include using n..

thinkpro.tistory.com

 

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

[C&C++] #include 기본 포함 경로, ""와 <> 차이  (0) 2021.01.12
[C++] enum class  (0) 2021.01.11
[C] 이중 pointer  (0) 2020.11.24
[C] pointer 증감연산자  (0) 2020.11.24
[C] 파일 입출력  (0) 2020.11.04