인 스 턴 스 설명 C+네 임 스페이스

이런 상황 을 가정 하면 한 반 에 자라 라 는 학생 이 두 명 있 을 때 그들 을 명확 하 게 구분 하기 위해 우 리 는 이름 을 사용 하 는 것 외 에 그들의 가정 주소 나 그들의 부모 의 이름 등 추가 정 보 를 사용 해 야 한다.
C++프로그램 에서 도 같은 상황 이 발생 했다.예 를 들 어 xyz()라 는 함 수 를 쓸 수 있 습 니 다.다른 사용 가능 한 라 이브 러 리 에 도 같은 함수 xyz()가 존재 합 니 다.이렇게 하면 컴 파일 러 는 어떤 xyz()함 수 를 사용 하 는 지 판단 할 수 없습니다.
따라서 네 임 스페이스 라 는 개념 을 도입 하여 위의 문 제 를 해결 하 는 데 사용 되 고 서로 다른 라 이브 러 리 에서 같은 이름 의 함수,클래스,변수 등 을 부가 정보 로 구분 할 수 있다.네 임 스페이스 를 사용 하면 컨 텍스트 를 정의 합 니 다.본질 적 으로 네 임 스페이스 는 하나의 범 위 를 정의 하 는 것 이다.
우 리 는 컴퓨터 시스템 의 예 를 들 어 하나의 폴 더(디 렉 터 리)에 여러 개의 폴 더 를 포함 할 수 있 습 니 다.각 폴 더 에는 같은 파일 이름 이 있 을 수 없 지만 서로 다른 폴 더 의 파일 은 이름 을 바 꿀 수 있 습 니 다.

네 임 스페이스 정의
네 임 스페이스 의 정 의 는 키워드 namespace 를 사용 하고 네 임 스페이스 의 이름 은 다음 과 같 습 니 다.

namespace namespace_name {
  //     
}
네 임 스페이스 가 있 는 함수 나 변 수 를 호출 하기 위해 서 는 네 임 스페이스 의 이름 을 앞 에 붙 여야 합 니 다.다음 과 같 습 니 다.

name::code; // code         
네 임 스페이스 가 변수 나 함수 등 실체 정의 범 위 를 보 여 줍 니 다.

#include <iostream>
using namespace std;
 
//        
namespace first_space{
  void func(){
   cout << "Inside first_space" << endl;
  }
}
//        
namespace second_space{
  void func(){
   cout << "Inside second_space" << endl;
  }
}
int main ()
{
 
  //              
  first_space::func();
  
  //              
  second_space::func(); 
 
  return 0;
}
위의 코드 가 컴 파일 되 고 실 행 될 때 다음 과 같은 결 과 를 얻 을 수 있 습 니 다.
Inside first_space
Inside second_space
명령 어 사용
using namespace 명령 을 사용 할 수 있 습 니 다.네 임 스페이스 를 사용 할 때 네 임 스페이스 의 이름 을 붙 이지 않 아 도 됩 니 다.이 명령 은 컴 파일 러 에 게 다음 코드 는 지정 한 네 임 스페이스 의 이름 을 사용 할 것 이 라 고 알려 줄 것 이다.

#include <iostream>
using namespace std;
 
//        
namespace first_space{
  void func(){
   cout << "Inside first_space" << endl;
  }
}
//        
namespace second_space{
  void func(){
   cout << "Inside second_space" << endl;
  }
}
using namespace first_space;
int main ()
{
 
  //              
  func();
  
  return 0;
}
위의 코드 가 컴 파일 되 고 실 행 될 때 다음 과 같은 결 과 를 얻 을 수 있 습 니 다.
Inside first_space
using 명령 도 네 임 스페이스 의 특정 항목 을 지정 할 수 있 습 니 다.예 를 들 어 std 네 임 스페이스 의 cout 부분 만 사용 하려 면 다음 과 같은 문 구 를 사용 할 수 있 습 니 다.

using std::cout;
다음 코드 에 서 는 cout 를 사용 할 때 네 임 스페이스 이름 을 접두사 로 추가 하지 않 아 도 됩 니 다.그러나 std 네 임 스페이스 의 다른 항목 은 네 임 스페이스 이름 을 접두사 로 추가 해 야 합 니 다.다음 과 같 습 니 다.

#include <iostream>
using std::cout;
 
int main ()
{
 
  cout << "std::endl is used with std!" << std::endl;
  
  return 0;
}
위의 코드 가 컴 파일 되 고 실 행 될 때 다음 과 같은 결 과 를 얻 을 수 있 습 니 다.
std::endl is used with std!
using 명령 이 도입 한 이름 은 정상 적 인 범위 규칙 을 따른다.이름 은 using 명령 을 사용 할 때 부터 이 범위 가 끝 날 때 까지 볼 수 있 습 니 다.이 때 범위 밖에서 정 의 된 동명 의 실 체 는 숨겨 져 있다.
불 연속 네 임 스페이스
네 임 스페이스 는 몇 개의 서로 다른 부분 에서 정의 할 수 있 기 때문에 네 임 스페이스 는 몇 개의 단독 정의 부분 으로 구성 된다.하나의 네 임 스페이스 의 구성 부분 은 여러 파일 에 분 산 될 수 있다.
따라서 네 임 스페이스 의 한 구성 부분 이 다른 파일 에 있 는 이름 을 정의 해 달라 고 요청 하면 이 이름 을 밝 혀 야 합 니 다.다음 네 임 스페이스 정 의 는 새로운 네 임 스페이스 를 정의 할 수도 있 고 기 존의 네 임 스페이스 에 새로운 요 소 를 추가 할 수도 있 습 니 다.

namespace namespace_name {
  //     
}
포 함 된 네 임 스페이스
네 임 스페이스 는 끼 워 넣 을 수 있 습 니 다.네 임 스페이스 에서 다른 네 임 스페이스 를 정의 할 수 있 습 니 다.다음 과 같 습 니 다.

namespace namespace_name1 {
  //     
  namespace namespace_name2 {
   //     
  }
}
::연산 자 를 사용 하여 포 함 된 네 임 스페이스 의 구성원 에 게 접근 할 수 있 습 니 다:

//    namespace_name2     
using namespace namespace_name1::namespace_name2;
 
//    namespace:name1     
using namespace namespace_name1;
위의 문장 에서 namespace 를 사용한다 면name 1,그럼 이 범위 내 namespacename 2 의 요소 도 사용 할 수 있 습 니 다.다음 과 같 습 니 다.

#include <iostream>
using namespace std;
 
//        
namespace first_space{
  void func(){
   cout << "Inside first_space" << endl;
  }
  //        
  namespace second_space{
   void func(){
     cout << "Inside second_space" << endl;
   }
  }
}
using namespace first_space::second_space;
int main ()
{
 
  //              
  func();
  
  return 0;
}
위의 코드 가 컴 파일 되 고 실 행 될 때 다음 과 같은 결 과 를 얻 을 수 있 습 니 다.
Inside second_space
이상 은 실례 를 들 어 C++네 임 스페이스 에 대한 상세 한 내용 입 니 다.C+네 임 스페이스 에 관 한 자 료 는 저희 의 다른 관련 글 을 주목 하 세 요!

좋은 웹페이지 즐겨찾기