Namespace(이름공간)
=> 개체를 구분할 수 있는 범위를 나타내는 말로 일반적으로 하나의 이름 공간에서는 하나의 이름이 단 하나의 개체만을 가리키게 된다.
namespace라는 키워드를 사용하여 새로운 이름공간을 생성한다.
이름공간은 전역 위치에 혹은 다른이름 공간에 선언할 수 있다.
블럭 내부에는 이름공간을 선언할 수 없다
변수, 객체 , 함수의 이름으로 동일한 이름이 서로 다른 이름공간에 정의될 수 있다.
namespace내부에 변수 선언
namespace Box1{ int boxSide = 4; } namespace Box2{ int boxSide = 12; } int main () { cout << Box1::boxSide << endl; //output 4 변수의 이름이 boxSide로 같더라도 namespace가 다르기떄문에 구별가능 cout << Box2::boxSide << endl; //output 12 return 0; } |
namespace 내부 객체 사용
이름공간 안에 선언되어 있는 객체나 변수, 함수에 접근하기 위해서는 범위지정연산자(::)를 사용하여 namespace를 구별한다.
namespace Bank
{ class Account { private: char CustomerName[20]; char AccountNo[20]; double balance; public: Bank::Account::Account(char*, char*, double); void print(); }; double todaycount = 10; double totalbalance = 100000; }; |
using 선언
namespace안에 소속된 객체들에 대해 접근할때마다 언제나 범위 지정연산자를 사용하여 소속공간을 밝히는 것을 생략하여 편하게 접근
using Bank::Account; //Bank::Account라고 소속을 밝히지 않고 간단히 Account로 사용한다. |
using namespace 지시자
namespace 내부의 모든변수, 객체, 함수에 대해 범위지정 연산자 없이 사용할수 있도록 한다.
using namesapce Bank |
이름이 지정되지 않는 이름공간
이름 없는 공간에 선언된 맴버들은 항상 자유롭게 접근 가능하다
이름이 없음으로 using선언이나 using namespace지시는 할수 없다
보통 내부 링크를 가지는 정적변수 대신 이 기능을 사용하는 경우가 많다.
'Developer > C / C++' 카테고리의 다른 글
isspace() (0) | 2013.02.03 |
---|---|
파일크기 측정방법 (0) | 2012.11.25 |
스트림 - 파일 I/O (0) | 2012.10.24 |
스트림 - 표준입출력(cout, cin) (0) | 2012.10.24 |
예외처리 (0) | 2012.10.24 |