namespace
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;
}
¸Þ¸ðÀåÀ¸·Î µ¹¾Æ°¡±â