C++/입문편

[보충 설명] 1-1강. "헷갈리기" 쉬운 네임스페이스(namespace), 헤더, cpp, 클래스, 메서드 지식 뿌시기

쉽코딩 2023. 1. 21.

 

 

 

 

1강 보충 자료

 

 

 

네임스페이스(namespace), 헤더, cpp, 클래스, 메서드가 어떠한 차이점이 있을까?

  • 네임스페이스는 일련의 식별자(예: 변수 이름, 함수 이름 등)를 보유하는 컨테이너이며 관련 식별자를 서로 분리하여 대규모 프로젝트에서 이름 충돌을 방지하는 데 도움이 됩니다.

  • 헤더 파일(포함 파일이라고도 함)은 프로그램의 다른 부분에서 사용할 수 있는 함수, 변수 및 기타 구성에 대한 선언을 포함하는 파일입니다. 헤더 파일은 일반적으로 파일 확장자가 ".h"이고 전처리기 지시문 #include를 사용하여 소스 파일에 포함됩니다.

  • C++ 소스 파일("cpp 파일"이라고도 함)에는 해당 헤더 파일에 선언된 함수 및 기타 구성의 구현이 포함되어 있습니다. C++ 소스 파일은 일반적으로 파일 확장자가 ".cpp"입니다.

  • 클래스는 개체의 청사진이며 개체의 속성과 메서드를 정의합니다.

  • 메서드는 해당 클래스의 개체에 대한 특정 동작을 제공하는 클래스와 관련된 함수입니다. 멤버 함수라고도 합니다.


요약하면 다음과 같다

1. 네임스페이스는 식별자의 컨테이너입니다.
2. 헤더 파일에는 함수, 변수 등에 대한 선언이 포함되어 있습니다.
3. C++ 소스 파일에는 헤더 파일에 선언된 함수 등의 구현이 포함되어 있습니다.
4. 클래스는 개체의 청사진입니다.
5. 메서드는 해당 클래스의 개체에 대한 특정 동작을 제공하는 클래스와 관련된 함수입니다.

 

 

네임스페이스(namespace)와 헤더는 같은 것일까? → NO!!

대답은 당연히 아니요, 네임스페이스와 헤더는 동일하지 않습니다.

네임스페이스는 일련의 식별자(예: 변수 이름, 함수 이름 등)를 보유하는 컨테이너이며 관련 식별자를 서로 분리하여 대규모 프로젝트에서 이름 충돌을 방지하는 데 도움이 됩니다. 이를 통해 식별자를 함께 그룹화하고 고유한 이름을 지정할 수 있으므로 코드 또는 외부 라이브러리에서 다른 식별자와 이름이 충돌할 염려 없이 사용할 수 있습니다.

헤더 파일(포함 파일이라고도 함)은 프로그램의 다른 부분에서 사용할 수 있는 함수, 변수 및 기타 구성에 대한 선언을 포함하는 파일입니다. 일반적으로 모듈의 인터페이스(예: 프로그램의 다른 부분에서 볼 수 있는 함수 및 변수)를 구현(예: 실제로 무언가를 수행하는 코드)에서 분리하는 데 사용됩니다. 헤더 파일은 일반적으로 파일 확장자가 ".h"이고 전처리기 지시문 #include를 사용하여 소스 파일에 포함됩니다.

네임스페이스와 헤더 파일은 별개의 개념이지만 함께 사용할 수 있습니다. 네임스페이스는 헤더 파일에 선언된 식별자 집합을 그룹화하여 코드 또는 외부 라이브러리의 다른 식별자와 구분하는 데 사용할 수 있습니다.
 
 
 
 

namespace와 header가 별개로 필요한 이유

네임스페이스와 헤더 파일은 다른 용도로 사용되며 다른 이유로 사용됩니다.

네임스페이스는 이름 충돌을 방지하는 데 사용됩니다. 프로그램과 라이브러리가 커짐에 따라 코드의 다른 부분이 다른 목적을 위해 동일한 식별자 이름을 사용할 가능성이 높아집니다. 네임스페이스는 관련 식별자를 함께 그룹화하고 고유한 이름을 지정하는 방법을 제공하므로 코드 또는 외부 라이브러리의 다른 식별자와의 이름 충돌에 대한 두려움 없이 사용할 수 있습니다.

헤더 파일은 구현에서 모듈의 인터페이스를 분리하는 데 사용됩니다. 대규모 프로젝트에서 작업할 때 코드를 더 작고 관리하기 쉬운 모듈로 나누는 것이 유용한 경우가 많습니다. 헤더 파일은 한 곳에서 모듈의 인터페이스(즉, 프로그램의 다른 부분에서 볼 수 있는 함수 및 변수)를 정의하고 다른 곳에서 구현(즉, 실제로 무언가를 수행하는 코드)을 정의하는 방법을 제공합니다. 이를 통해 여러 소스 파일이 각 파일의 코드를 복제하지 않고도 동일한 헤더 파일을 포함하고 동일한 인터페이스를 사용할 수 있습니다.

네임스페이스는 헤더 파일과 함께 사용할 수 있습니다. 예를 들어, 헤더 파일에는 이름 공간에서 함께 그룹화된 함수 및 변수 집합에 대한 선언이 포함될 수 있으므로 이름 공간 이름을 사용하여 헤더 파일의 식별자에 액세스할 수 있으므로 다른 식별자와의 이름 충돌을 방지할 수 있습니다.

요약하면 다음과 같다

네임스페이스와 헤더 파일은 서로 다른 용도로 사용되지만 함께 사용하여 코드를 구성하고 구성할 수 있으므로 코드를 더 읽기 쉽고 유지 관리가 가능하며 오류가 덜 발생합니다.
 
 

 

댓글