개인 공부/C++
[씹어먹는 C++]< 1- C++> namespace
_h.j
2021. 3. 2. 18:16
728x90
namesapce
namespace가 정의된 파일을 먼저 #include 한 다음 namespace로 선언한 후 사용.
1. header1이라는 이름 공간이 header1이라는 헤더 파일에 존재
#include "header1.h"
using namespace header1;
int main(){
foo();
}
2. iostream 파일 안에 header1이라는 이름 공간이 존재하는 경우
#include <iostream>
using namespace header1;
int main(){
foo();
}
주의
using namespace std; 와 같이 어떤 이름 공간 사용하겠다 선언하는 것 권장X
이름 겹치는 함수 만들면 오류 발생.
usgine namespace std; 대신 std:: 직접 앞에 붙여 std 이름 공간의 함수다 명시해주는 방법이 더 좋음.
호깃 모를 이름 충돌로 부터 보호하기
이름 없는 이름 공간
#include <iostream>
//using namespace std;
//namespace 선언하는 것 권장하지않음
/*이름 없는 이름 공간*/
namespace {
// 이 파일 안에서만 사용 가능
// 헤터 파일 통해 이 파일을 받았다 하더라도 이 익명의 namescpae 안에 정의된 것들 사용 불가
// 마치 static 키워드 사용한 것과 같은 효과
int OnlyInThisFile(){}
int only_in_this_file = 0;
}
int main() {
std::cout << "hello world\n";
OnlyInThisFile();
only_in_this_file = 3;
return 0;
}
static으로 선언한 것 처럼 사용 가능
728x90