인 스 턴 스 설명 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+네 임 스페이스 에 관 한 자 료 는 저희 의 다른 관련 글 을 주목 하 세 요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
HDU 원활 공사 & & 원활 공사 (차 트 법)모 성 은 도시 의 교통 상황 을 조사 하여 기 존의 도시 도로 통계 표를 얻 었 고 표 에는 모든 도로 가 직접 연 결 된 도시 가 열거 되 어 있다.성 정부의 '원활 한 공사' 목 표 는 성 전체의 어느 두 도시...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.