옛 버전이 없습니다
c++에 최근에 도입된 문법으로
MFC등 무지막지한 라이브러리가 지원 되는 현실에서 필요 불가결 하개 등장한 예약어이다.
수많은 함수,클래스 등이 존재할 수 있으며, 이들 이름들 간의 충돌을 회피하기 위해서는
기억하기 힘들 정도로 함수이름들이 복잡해져야만 하는데, 이 문제점을 해결하는 방법으로 namespace를 사용한다.
namespace의 역할은 어떤 모듈이나 타입 등을 하나의 그룹으로 묶어주는 역할을 한다.
사용법 예_1]
string란 클래스를 새로 하나 만든다고 할 때, 기존의 이름과 같다면 당연히 이름을 변형 해서, ahn_string 머 이런식으로 써주어야 합니다. 하지만 같은 이름으로 내가 만든 string클래스를 쓰는 방법이 있습니다.
아래와 같이
namespace ahn { class string{ .... } } 이렇개 정의 해주시고
void main()
{ using namespace ahn; string iamstring = "baobo 만쉐이"; ... }
이렇게 사용하면, namespace ahn {} 에서 정의한 string 클래스가 적용된다.
1) 풀패스로 사용한다면 다음과 같은 형식이다. (c++의 완전 이름)
void main() { ahn::string iamstring = "baobo 만쉐이"; std::string iamstdstring = "baobo std 만쉐이"; }
2) using directive를 사용하여 하나의 customer 이름을 지정한다면 형식은 다음과 같다.
void main() { using ahn::string; string iamstring = "baobo 만쉐이"; }
ahn이란 곳에서 string클래스 하나만 사용한다는 식이 된다.
참고로, 이름공간중에 std라는 c++에서 미리 정의하고 사용하는 공간이 있는데
왠만한 표준이 들어가는 클래스나 함수는 다 이 namespace에 있다.
사용법 예_2]
사용할 때는 ...
fully qualified name으로 사용을 하거나 using directive를 사용하여 하나의 customer 이름을 지정할 수 있는 것이죠...
아래는 그 예입니다..
#include <iostream> using namespace std; namespace TestName1 { int a = 5; } namespace TestName2 { int a = 6; } int main( void ) { cout << TestName1::a << endl; cout << TestName2::a << endl; return 0; } ![]() |
지혜는 갖고 다니기엔 쉽지만 얻기엔 힘든 것이다. 물_관음 DropDown_MenuList 책갈피_Cocos2d-x_3MobileGame MoniWikiTodo |