name space사용 목적
Program 규모가 커지게 되면 동일한 이름의 클래스 와 함수 들이 중복되어 사용되는 경우가 발생하는데,
이를 피하기 위해 구별되는 이름을 부여하여 충돌은 쉽게 피할 수 있도록 하는 기능이 namespace 이다.
선언 방법
namespace std
{
namespace 상의 전역변수
namespace 상의 전역함수
일반 class 선언
}
사용 방법
namespace 내에서는 그냥 일반적인 방법으로 함수나 변수를 사용하면 된다.
namespace를 벋어나는 경우는 다른 namespace 상의 함수나 변수는 std::function() 형태로 사용하면 된다.
또는 그 namespace상에서는 많은 부분 다른 namespace상의 변수나 함수를 호출할 경우
std::function() 같이 std:: 를 사용하지 않아도 된다.
using namespace std;
using 이라는 namespace 이용은 하나가 아니라 여러 개가 있을 수 있다. 단 그들 안에 같은 이름의 함수, 변수는 없어야 한다.
namespace의 범위가 클 경우
여러 file에 걸쳐 namespace 가 존재할 경우 namespace를 지정할 때 같은 이름으로 지정해주면 모두 같은 namespace안에 들어간다.
이름 없는 namespace
namespace {
int a;
}
경우는 namespace에 소속된 그룹에 접근을 차단하는 결과를 나타낸다.
stratic을 이용하여 전역변수나 함수를 선언하는 것과 동일하므로 접근할 수 없게 된다.
nested snamespace
namespace Data
{
namespace List
{
void function();
}
..
}
namespace 안에 또 다른 namespace가 추가된 경우 이를 호출하려면 Data::List::function() 와 같이 사용한다.
namespace에 별명 붙이기
namespace Rorate_with_small_image
{
}
//다른 이름으로 치환하기
namespace rs = Rotate_with_small_image;
rs::iamge();
'개발언어 > c++' 카테고리의 다른 글
DLL에서 만든 클래스 공유 (0) | 2016.07.18 |
---|---|
std::function (0) | 2016.07.18 |
MS Winows 계열 의 버전 정보를 알아내는 함수 (0) | 2016.07.18 |
3D text, 예쁜 글 표현 (0) | 2016.07.18 |
Use Direct3D 8 To Fly Through the Munsell Color Solid (0) | 2016.07.17 |