'Using'에 해당되는 글 1건

  1. 2012.10.24 Namespace

Namespace

Developer/C / C++ 2012. 10. 24. 14:30

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
Posted by No names
,