Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 네임스페이스

<시간/>

같은 클래스에 Zara라는 이름을 가진 두 사람이 있다고 가정해 보겠습니다. 우리가 그들을 확실히 구별해야 할 때마다 우리는 지역, 그들이 다른 지역에 살고 있는지, 어머니나 아버지의 이름 등과 같이 이름과 함께 몇 가지 추가 정보를 사용해야 합니다.

C++ 애플리케이션에서도 동일한 상황이 발생할 수 있습니다. 예를 들어, xyz()라는 함수가 있는 코드를 작성 중일 수 있으며 동일한 함수 xyz()를 사용하는 다른 라이브러리를 사용할 수 있습니다. 이제 컴파일러는 코드 내에서 참조하는 xyz() 함수의 버전을 알 수 없습니다.

네임스페이스는 이러한 어려움을 극복하기 위해 설계되었으며 다른 라이브러리에서 사용할 수 있는 동일한 이름으로 유사한 기능, 클래스, 변수 등을 구별하기 위한 추가 정보로 사용됩니다. 네임스페이스를 사용하여 이름이 정의되는 컨텍스트를 정의할 수 있습니다. 본질적으로 네임스페이스는 범위를 정의합니다.

네임스페이스 정의

네임스페이스 정의는 다음과 같이 네임스페이스 키워드 뒤에 네임스페이스 이름이 오는 것으로 시작합니다. –

namespace namespace_name {
   // code declarations
}

함수 또는 변수의 네임스페이스 사용 버전을 호출하려면 다음과 같이 네임스페이스 이름 앞에(::)를 추가합니다. –

name::code; // code could be variable or function.

예시

#include <iostream>
using namespace std;
// first name space
namespace first_space {
   void func() {
      cout << "Inside first_space" << endl;
   }
}
// second name space
namespace second_space {
   void func() {
      cout << "Inside second_space" << endl;
   }
}
int main () {
   // Calls function from first name space.
   first_space::func();
   // Calls function from second name space.
   second_space::func();
   return 0;
}

출력

Inside first_space
Inside second_space