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

C++에서 'namespace std 사용'은 무엇을 의미합니까?

<시간/>

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

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

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

C++에는 컨테이너, 알고리즘 등과 같은 애플리케이션을 구축하는 데 사용하는 공통 기능이 포함된 표준 라이브러리가 있습니다. 이러한 라이브러리에서 사용하는 이름이 공개된 경우(예:큐 클래스를 전역적으로 정의한 경우) , 충돌 없이 같은 이름을 다시는 사용할 수 없습니다. 그래서 그들은 이 변경 사항을 포함하기 위해 std라는 네임스페이스를 만들었습니다.

using namespace 문은 그것이 존재하는 범위 내에서 각각의 앞에 std::접두사를 붙일 필요 없이 std 네임스페이스 아래의 모든 것을 사용 가능하게 만든다는 것을 의미합니다.

이 방법은 짧은 예제 코드나 사소한 프로그램에서는 괜찮지만 전체 std 네임스페이스를 전역 네임스페이스로 가져오는 것은 네임스페이스의 목적을 무효화하고 이름 충돌을 유발할 수 있으므로 좋은 습관이 아닙니다. (처음에 이름 충돌이 없더라도 프로젝트에 더 많은 코드, 라이브러리 등이 추가됨에 따라 유지 관리 중에 잘릴 수 있습니다.) 이러한 상황을 일반적으로 네임스페이스 오염이라고 합니다.