34-1-´Ù.³×ÀÓ ½ºÆäÀ̽º »ç¿ë

³×ÀÓ ½ºÆäÀ̽º´Â ¸íĪÀÇ ¼±¾ð ¿µ¿ªÀ» ºÐ¸®ÇÏ¿© Ãæµ¹À» ¹æÁöÇÑ´Ù. ±×·¡¼­ ³×ÀÓ ½ºÆäÀ̽º¾È¿¡ ¸íĪÀ» ¼±¾ðÇϸé À̸§À» ºÙÀÏ ¶§ Ãæµ¹À» °ÆÁ¤ÇÏÁö ¾Ê°í ÀÚÀ¯·Ó°Ô À̸§À» ºÙÀÏ ¼ö ÀÖ´Ù. ±×·¯³ª ÀÌ·¸°Ô ÀÛ¼ºµÈ ¸íĪÀ» »ç¿ëÇÏ·Á¸é ¸Å¹ø ¼Ò¼ÓÀ» ¹àÈ÷°í ÂüÁ¶ÇØ¾ß ÇϹǷΠ¹«Ã´ ¹ø°Å·Ó´Ù. ´ÙÀ½°ú °°ÀÌ ¼±¾ðµÈ ³×ÀÓ ½ºÆäÀ̽º°¡ ÀÖ´Ù°í ÇÏÀÚ.

 

namespace MYNS {

     int value;

     double score;

     void func() { printf("I am func\n"); }

}

 

MYNS ³×ÀÓ ½ºÆäÀ̽º ¾È¿¡ º¯¼ö µÑ, ÇÔ¼ö Çϳª°¡ Æ÷ÇԵǾî Àִµ¥ ÀÌ ¸íĪµéÀ» »ç¿ëÇÏ·Á¸é Ç×»ó ¾Õ¿¡ MYNS::À» ºÙ¿©¾ß ÇÑ´Ù.

 

void main()

{

     MYNS::value=3;

     MYNS::score=1.2345;

     MYNS::func();

}

 

³×ÀÓ ½ºÆäÀ̽ºÀÇ À̸§ÀÌ ±æ¾îÁö¸é ŸÀÌÇÁÇÏ´Â °Íµµ Èûµé°í ¼Ò½ºÀÇ °¡µ¶¼ºµµ ¶³¾îÁ® ¿©·¯ ¸ð·Î ÁÁÁö ¾Ê´Ù. ±×·¡¼­ ÀÌ·± ºÒÆíÇÔÀ» ÇؼÒÇÒ ¼ö ÀÖ´Â ¼¼ °¡Áö ¹æ¹ýÀÌ Á¦°øµÈ´Ù.

using Áö½ÃÀÚ(Directive)

using namespace ´ÙÀ½¿¡ ³×ÀÓ ½ºÆäÀ̽º¸¦ ÁöÁ¤ÇÏ´Â ¹æ½ÄÀÌ´Ù. ÁöÁ¤ÇÑ ³×ÀÓ ½ºÆäÀ̽ºÀÇ ¸ðµç ¸íĪÀ» ÀÌ ¼±¾ðÀÌ ÀÖ´Â ¿µ¿ªÀ¸·Î °¡Á®¿Í ¼Ò¼Ó ÁöÁ¤¾øÀÌ ¸íĪÀ» ¹Ù·Î »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù.

 

¿¹ Á¦ : usingdirective

#include <Turboc.h>

 

namespace MYNS {

     int value;

     double score;

     void func() { printf("I am func\n"); }

}

 

using namespace MYNS;

void main()

{

     value=3;

     score=1.2345;

     func();

}

 

Àü¿ª ¿µ¿ª¿¡ using Áö½ÃÀÚ°¡ ÀÖ°í MYNS¸¦ ÀÌ ¿µ¿ª¿¡¼­ »ç¿ëÇÏ°Ú´Ù°í Áö½ÃÇß´Ù. ÀÌÈÄ Àü¿ª ¿µ¿ª¿¡¼­ MYNS¿¡ ¼ÓÇÑ ¸íĪÀº MYNS::ÀÌ ¾ø¾îµµ ¹Ù·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÄÄÆÄÀÏ·¯´Â value, score µîÀÇ ¸íĪÀÌ Àü¿ª ³×ÀÓ ½ºÆäÀ̽º¿¡ ¾øÀ» °æ¿ì using Áö½ÃÀÚ¿¡ ÀÇÇØ ÁöÁ¤µÈ MYNS ³×ÀÓ ½ºÆäÀ̽ºµµ °Ë»öÇØ º¸°í ¿©±â¼­ ¸íĪÀÌ ¹ß°ßµÇ¸é ÀÌ ³×ÀÓ ½ºÆäÀ̽ºÀÇ ¸íĪÀ» ÂüÁ¶Çϵµ·Ï Äڵ带 ÄÄÆÄÀÏÇÒ °ÍÀÌ´Ù. using Áö½ÃÀÚ´Â ÄÄÆÄÀÏ·¯°¡ ÀÏÀÏÀÌ MYNS::À» ¸íĪ¾Õ¿¡ ºÙÀ̵µ·Ï ÇÑ´Ù.

using Áö½ÃÀÚ°¡ ¿µÇâÀ» ¹ÌÄ¡´Â ¹üÀ§´Â ÀÌ Áö½ÃÀÚ°¡ ÀÖ´Â ¿µ¿ª¿¡ ±¹ÇѵȴÙ. ƯÁ¤ ÇÔ¼ö³ª ºí·Ï ¾È¿¡ using Áö½ÃÀÚ¸¦ »ç¿ëÇϸé ÀÌ ºí·Ï¿¡¼­¸¸ ÁöÁ¤ÇÑ ¸íĪÀ» ¹Ù·Î »ç¿ëÇÒ ¼ö ÀÖÀ¸¸ç ±×¿ÜÀÇ ¿µ¿ª¿¡¼­´Â ¿©ÀüÈ÷ ¼Ò¼Ó ÁöÁ¤ÀÌ ÇÊ¿äÇÏ´Ù. ´ÙÀ½ Äڵ带 º¸ÀÚ.

 

void main()

{

     using namespace MYNS;

 

     value=5;

}

 

void subfunc()

{

     MYNS::score=1.2;

}

 

using Áö½ÃÀÚ°¡ main ÇÔ¼ö ³»ºÎ¿¡ ÀÖÀ¸¹Ç·Î ÀÌ ¿µ¿ª¿¡ ´ëÇؼ­¸¸ MYNSÀÇ ¸íĪÀ» ¹Ù·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. subfunc¿¡¼­´Â MYNS::À» ²À ºÙ¿©¾ß ÇÑ´Ù.

using ¼±¾ð(Declaration)

using Áö½ÃÀÚ´Â ÁöÁ¤ÇÑ ³×ÀÓ ½ºÆäÀ̽ºÀÇ ¸ðµç ¸íĪÀ» °¡Á® ¿ÀÁö¸¸ using ¼±¾ðÀº ÇϳªÀÇ ¸íĪ¸¸À» °¡Á®¿Â´Ù. Å°¿öµå using ´ÙÀ½¿¡ °¡Á®¿À°í ½ÍÀº ¸íĪÀÇ ¼Ò¼Ó°ú À̸§À» ¹àÈ÷¸é ÀÌÈÄ ÀÌ ¸íĪÀº ¼Ò¼ÓÀ» ´Ù½Ã ¹àÈú ÇÊ¿ä¾øÀÌ ¹Ù·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù.

 

¿¹ Á¦ : usingdecl

#include <Turboc.h>

 

namespace MYNS {

     int value;

     double score;

     void func() { printf("I am func\n"); }

}

 

void main()

{

     using MYNS::value;

 

     value=3;

     MYNS::score=1.2345;

     MYNS::func();

}

 

void subfunc()

{

     MYNS::value=3;

}

 

main ÇÔ¼öÀÇ ¼±µÎ¿¡¼­ MYNS::value¿¡ ´ëÇؼ­¸¸ using ¼±¾ðÀ» Çß´Ù. ÀÌÈÄ main ÇÔ¼ö¿¡¼­ value¸¦ ÂüÁ¶ÇÒ ¶§ MYNS::À» ºÙÀÌÁö ¾Ê¾Æµµ µÈ´Ù. score³ª func´Â º°µµÀÇ ¼±¾ðÀÌ ¾øÀ¸¹Ç·Î ¿©ÀüÈ÷ MYNS::À» ¸íĪ¾Õ¿¡ ºÙ¿© Á¤È®ÇÑ ¼Ò¼ÓÀ» ¹àÇô¾ß ÇÑ´Ù.

using ¼±¾ðµµ using Áö½ÃÀÚ¿Í ¸¶Âù°¡Áö·Î ÀÌ ¼±¾ðÀÌ ÀÖ´Â ºí·Ï¿¡ ´ëÇؼ­¸¸ ¿µÇâÀ» ¹ÌÄ£´Ù. MYNS::value¿¡ ´ëÇÑ using ¼±¾ðÀÌ main ÇÔ¼ö ³»ºÎ¿¡ ÀÖÀ¸¹Ç·Î ÀÌ ¼±¾ðÀº main ÇÔ¼ö ³»¿¡¼­¸¸ À¯È¿Çϸç subfunc¿¡¼­ value¸¦ ÂüÁ¶ÇÒ ¶§´Â MYNS::À» ºÙ¿©¾ß ÇÑ´Ù. using ¼±¾ðÀ» main ÇÔ¼ö ÀÌÀüÀÇ Àü¿ª ¿µ¿ªÀ¸·Î ¿Å±â¸é subfunc¿¡¼­µµ value¸¦ ¹Ù·Î ÂüÁ¶ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

using¿¡ ÀÇÇÑ Ãæµ¹

using Áö½ÃÀÚ¿Í using ¼±¾ðÀº ÁöÁ¤ÇÑ ³×ÀÓ ½ºÆäÀ̽º Àüü ¶Ç´Â ƯÁ¤ ¸íĪÀ» ÀÌ ¼±¾ðÀÌ ÀÖ´Â ¿µ¿ªÀ¸·Î °¡Á®¿Í ¼Ò¼Ó ÁöÁ¤¾øÀÌ ¸íĪÀ» ¹Ù·Î ¾µ ¼ö ÀÖµµ·Ï ÇØ ÁØ´Ù. ÀÌ ¹æ¹ýÀÌ Æí¸®Çϱâ´Â ÇÏÁö¸¸ ¼Ò¼ÓÀ» ¹àÈ÷Áö ¾Ê°í »ç¿ëÇÏ´Ù º¸´Ï ÀÌ ¿µ¿ª¿¡ ÀÌ¹Ì Á¸ÀçÇÏ´Â ¸íĪ°ú Ãæµ¹ÇÏ´Â °æ¿ì°¡ ÀÖÀ» ¼ö ÀÖ´Ù. ÀÌ °æ¿ì ÄÄÆÄÀÏ·¯°¡ Ãæµ¹À» ¾î¶»°Ô ó¸®ÇÏ´ÂÁö ¿¬±¸ÇØ º¸ÀÚ. ¸ÕÀú using ¼±¾ðÀÇ °æ¿ì¸¦ º¸ÀÚ.

 

¿¹ Á¦ : usingdeclconflict

#include <Turboc.h>

 

namespace MYNS {

     int value;

     double score;

     void func() { printf("I am func\n"); }

}

 

int value;

void main()

{

     using MYNS::value;

     int value=3;        // ¿¡·¯

 

     value=1;            // MYNSÀÇ value

     ::value=2;          // Àü¿ªº¯¼ö value

}

 

¼¼ °³ÀÇ value°¡ ¼±¾ðµÇ¾î Àִµ¥ À̵éÀº ¸ðµÎ ¼Ò¼ÓÀÌ ´Ù¸£¹Ç·Î ÀÏ´Ü ¼±¾ðÀº °¡´ÉÇÏ´Ù. value¿¡ ´ëÇÑ using ¼±¾ðÀÌ main ÇÔ¼öÀÇ ¼±µÎ¿¡ ÀÖÀ¸¸ç MYNS::value°¡ main ÇÔ¼öÀÇ Áö¿ª ¿µ¿ª¿¡ µé¾î¿Â´Ù. ÀÌ·¸°Ô µÇ¸é MYNS::value¸¦ value¶ó´Â À̸§À¸·Î ÂüÁ¶ÇÒ ¼ö ÀÖÀ¸¹Ç·Î °°Àº À̸§ÀÇ Áö¿ªº¯¼ö¸¦ ¼±¾ðÇÒ ¼ö ¾ø´Ù. value¶ó´Â ¸íĪÀÌ main¿¡¼­ ¼±¾ðÇÑ Áö¿ªº¯¼öÀÎÁö MYNSÀÇ º¯¼öÀÎÁö ±¸ºÐµÇÁö ¾ÊÀ¸¸ç ±×·¡¼­ ÀÌ »óȲÀº ¿¡·¯·Î 󸮵ȴÙ. °°Àº À̸§ÀÇ Àü¿ªº¯¼ö°¡ ÀÖ´Ù¸é ÀÌ´Â º° ¹®Á¦°¡ µÇÁö ¾Ê´Âµ¥ Àü¿ª ¸íĪÀº Áö¿ª ¸íĪ¿¡ ÀÇÇØ °¡·ÁÁö¸ç :: ¿¬»êÀÚ·Î Àü¿ª ¸íĪÀ» ÂüÁ¶ÇÒ ¼ö ÀÖ´Â º°µµÀÇ ¹®¹ýÀÌ Á¦°øµÇ±â ¶§¹®ÀÌ´Ù.

using ¼±¾ð¿¡ ÀÇÇØ ÁöÁ¤ÇÑ ¸íĪÀ» ÀÌ ¿µ¿ª¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ°Ô µÇ¾úÀ¸¹Ç·Î °°Àº À̸§ÀÇ ¸íĪÀ» »ç¿ëÇÒ ¼ö ¾ø´Ù. ÀÌ ¹®Á¦¸¦ ÇØ°áÇÏ·Á¸é Áö¿ªº¯¼ö valueÀÇ À̸§À» ¹Ù²Ùµç°¡ ¾Æ´Ï¸é using ¼±¾ðÀ» Ãë¼ÒÇÏ°í MYNS::value·Î ½á¾ß ÇÑ´Ù. ´ÙÀ½Àº µ¿ÀÏÇÑ ÄÚµå·Î using Áö½ÃÀÚÀÇ °æ¿ì¸¦ º¸ÀÚ.

 

¿¹ Á¦ : usingdireconflict

#include <Turboc.h>

 

namespace MYNS {

     int value;

     double score;

     void func() { printf("I am func\n"); }

}

 

int value;

void main()

{

     using namespace MYNS;

     int value=3;             // Áö¿ªº¯¼ö ¼±¾ð

 

     value=1;                 // Áö¿ªº¯¼ö value

     ::value=2;               // Àü¿ªº¯¼ö value

     MYNS::value=3;           //

}

 

using Áö½ÃÀÚÀÇ °æ¿ì MYNSÀÇ ¸íĪ Àüü¸¦ main ºí·Ï¿¡¼­ ÂüÁ¶ÇÒ ¼ö ÀÖµµ·Ï ÇÑ´Ù. using ¼±¾ð°ú ´Ù¸¥ Á¡Àº ÁöÁ¤ÇÑ ³×ÀÓ ½ºÆäÀ̽º ¼Ò¼ÓÀÇ ¸íĪ°ú °°Àº À̸§ÀÇ Áö¿ªº¯¼ö¸¦ ¼±¾ðÇÒ ¼ö ÀÖ´Ù´Â Á¡ÀÌ´Ù. ÀÌ °æ¿ì mainÀÇ Áö¿ªº¯¼ö value¿¡ ÀÇÇØ MYNS::value°¡ °¡·ÁÁö¸ç main ³»¿¡¼­ value¸¦ ´Üµ¶À¸·Î »ç¿ëÇϸé Áö¿ªº¯¼ö value¸¦ ÀǹÌÇÑ´Ù. Áö¿ªº¯¼ö¿¡ ÀÇÇØ °°Àº À̸§ÀÇ Àü¿ªº¯¼ö°¡ °¡·ÁÁö´Â °Í°ú µ¿ÀÏÇÏ´Ù. ¹°·Ð MYNSÀÇ value¸¦ ²À ÂüÁ¶ÇÏ·Á¸é MYNS::value Çü½ÄÀ¸·Î °è¼Ó ÂüÁ¶ÇÒ ¼ö ÀÖ´Ù.

¿ä¾àÇÏÀÚ¸é using ¼±¾ðÀº ¸íĪÀÌ Ãæµ¹ÇÒ °æ¿ì ¿¡·¯·Î ó¸®Çϴµ¥ ºñÇØ using Áö½ÃÀÚ´Â ³×ÀÓ ½ºÆäÀ̽ºÀÇ ¸íĪ¿¡ ´ëÇÑ °¡½Ã¼ºÀÌ Á¦ÇÑµÉ »Ó ¿¡·¯³ª °æ°í¸¦ ³»Áö ¾Ê´Â´Ù. ¾ð¶æ »ý°¢Çϱ⿡ using Áö½ÃÀÚ°¡ ´õ °ü´ëÇÑ °Í °°Áö¸¸ »ç½Ç ÀÌ·± »óȲÀÌ °ñÄ¡ ¾ÆÇ ¿¡·¯ÀÇ ¿øÀÎÀÌ µÉ ¼öµµ ÀÖ´Ù. °³¹ßÀÚ´Â ÀÚ½ÅÀÌ ¾î¶² ¸íĪÀ» ¾×¼¼½ºÇÏ´ÂÁö Á¤È®È÷ ¸ð¸£´Â »óÅ¿¡¼­ À§ÇèÇÑ Äڵ带 °è¼Ó ÀÛ¼ºÇÏ°Ô µÉ °ÍÀÌ´Ù. ÀϹÝÀûÀ¸·Î ¾Ö¸ÅÇÑ »óȲº¸´Ù´Â ¸íÈ®ÇÏ°Ô ¿¡·¯ 󸮸¦ ÇÏ´Â °ÍÀÌ ÈξÀ ´õ ¹Ù¶÷Á÷ÇÏ´Ù. ±×·¡¼­ °¡±ÞÀûÀ̸é using Áö½ÃÀÚ·Î ³×ÀÓ ½ºÆäÀ̽ºÀÇ Àüü ¸íĪÀ» °¡Á® ¿À´Â °Íº¸´Ù using ¼±¾ðÀ¸·Î ²À ÇÊ¿äÇÑ °Í¸¸ ¼±º°ÀûÀ¸·Î °¡Á®¿À´Â °ÍÀÌ ´õ ÁÁ´Ù.

¸ðÈ£ÇÑ »óȲ

using Áö½ÃÀÚ¿¡ ÀÇÇØ Äڵ尡 ¸ðÈ£ÇØÁö´Â ´Ù¸¥ °æ¿ì¸¦ º¸µµ·Ï ÇÏÀÚ. ´ÙÀ½ ÄÚµå´Â ¸í¹éÇÑ ¿¡·¯·Î 󸮵ȴÙ.

 

namespace A {

     double i;

}

namespace B {

     int i;

}

 

void main()

{

     using namespace A;

     using namespace B;

 

     i=3;                   // ¸ðÈ£ÇÏ´Ù´Â ¿¡·¯ ¹ß»ý

}

 

i¶ó´Â ¸íĪÀ» µÎ ³×ÀÓ ½ºÆäÀ̽º¿¡ µ¿½Ã¿¡ ¼±¾ðÇÏ´Â °ÍÀº ºÐ¸íÈ÷ °¡´ÉÇÏ´Ù. main¿¡¼­ using Áö½ÃÀÚ·Î A, BÀÇ ³×ÀÓ ½ºÆäÀ̽º ¸íĪÀ» °¡Á®¿Àµµ·Ï Çߴµ¥ ÀÌ·¸°Ô µÉ °æ¿ì main¿¡¼­ ÂüÁ¶ÇÏ´Â i°¡ ¾î¶² ³×ÀÓ ½ºÆäÀ̽ºÀÇ iÀÎÁö°¡ ¸ðÈ£ÇØÁø´Ù. A, BÀÇ ¼öÁØÀÌ °°¾Æ¼­ Áö¿ª, Àü¿ªÀÇ °æ¿ìó·³ ÇÑÂÊÀÇ °¡½Ã¼ºÀ» Á¦ÇÑÇÏ´Â °Íµµ ºÒ°¡´ÉÇÏ´Ù. A::i, B::i·Î ¼Ò¼ÓÀ» ¸íÈ®ÇÏ°Ô ¹àÈ÷µçÁö ¾Æ´Ï¸é ÇÑÂÊÀÇ using Áö½ÃÀÚ¸¦ Á¦°ÅÇØ¾ß ÇÑ´Ù. ´ÙÀ½Àº using ¼±¾ð¿¡ ÀÇÇØ ¸ðÈ£ÇØÁö´Â »óȲÀ» º¸ÀÚ.

 

void main()

{

     using A::i;

     using B::i;         // Áߺ¹µÈ ¼±¾ðÀ̶ó´Â ¿¡·¯ ¹ß»ý

 

     i=3;

}

 

using ¼±¾ðÀº ÁöÁ¤ÇÑ ¸íĪÀ» ºí·ÏÀ¸·Î °¡Á® ¿À´Âµ¥ A::i¸¦ °¡Á®¿À´Â °ÍÀº ¼º°øÇÏÁö¸¸ B::i´Â ½ÇÆÐÇÑ´Ù. ¿Ö³ÄÇϸé A::i°¡ ÀÌ¹Ì main ÇÔ¼ö ¿µ¿ª¿¡ µé¾î¿Í Àֱ⠶§¹®¿¡ °°Àº À̸§ÀÇ i¸¦ ¶Ç °¡Á®¿Ã ¼ö ¾ø´Â °ÍÀÌ´Ù. µÎ ¼±¾ð Áß Çϳª¸¦ Ãë¼ÒÇÏ°í ÇÑÂÊÀº :: ¿¬»êÀÚ·Î ¼Ò¼ÓÀ» ¹àÈ÷´Â ¼ö¹Û¿¡ ¾ø´Ù.

³×ÀÓ ½ºÆäÀ̽º¿¡ ¼ÓÇÑ ¸íĪÀ» ÂüÁ¶ÇÒ ¶§´Â ¼Ò¼ÓÀ» ¹àÈ÷´Â °ÍÀÌ ¿øÄ¢ÀûÀ̸ç ÀÌ·¸°Ô ÇÏ¸é ¾Æ¹«·± ¹®Á¦°¡ ¾øÀ» °ÍÀÌ´Ù. ±×·¯³ª ¸Å¹ø ±×·¸°Ô Çϱ⿡´Â ³Ê¹« ¹ø°Å·Ó±â ¶§¹®¿¡ using ¼±¾ðÀ̳ª using Áö½ÃÀÚ¸¦ »ç¿ëÇϴµ¥ ÀÌ µÎ ¹æ¹ýÀº ¾îµð±îÁö³ª ¸íĪÀÇ ¼Ò¼ÓÀ» ã´Â Àӽà ¹æÆíÀÏ »Ó ¿Ïº®ÇÒ ¼ö°¡ ¾ø´Ù. Á¶±Ý ÆíÇØ º¸°íÀÚ ÀÌ·± ¾Ö¸ÅÇÑ ¹æ¹ýÀ» ¾²´Â °Íº¸´Ù´Â Â÷¶ó¸® ÀÏÀÏÀÌ ¼Ò¼ÓÀ» ¹àÈ÷°í ¾²´Â °ÍÀÌ °¡Àå ¿Ïº®ÇÑ ¹æ¹ýÀÌ´Ù.

³×ÀÓ ½ºÆäÀ̽º´Â À̸§ Ãæµ¹À» Á¦°ÅÇϱâ À§ÇØ µµÀÔµÈ °ÍÀε¥ Ãæµ¹À» ÇØ°áÇÏ´Â ¸ñÀûÀº ´Þ¼ºÇÒ ¼ö ÀÖÁö¸¸ ¾²±â¿¡ ³Ê¹« ºÒÆíÇÏ´Ù. ±×·¡¼­ using Áö½ÃÀÚ³ª ¼±¾ðÀ¸·Î ³×ÀÓ ½ºÆäÀ̽ºÀÇ ¸íĪÀ» ÂüÁ¶ÇÏ´Â Á¶±Ý Æí¸®ÇÑ ¹æ¹ýÀÌ Á¦°øµÇ´Âµ¥ À̵éÀº ±¸ºÐÇØ ³õÀº ¼Ò¼ÓÀ» ´Ù½Ã ÇÕÄ¡´Â ¹Ý´ë µ¿ÀÛÀ» Çϱ⠶§¹®¿¡ ´Ù¼Ò ºÎÀÛ¿ëÀÌ ÀÖ´Ù. ´ë°³ÀÇ °æ¿ì º° ¹®Á¦°¡ ¾øÁö¸¸ °¡²û ¸»½éÀ» ºÎ¸®´Â °æ¿ì°¡ ÀÖ´Ù. ±×·¡¼­ using ¼±¾ðÀº Å« ºÎÀÛ¿ë¾øÀÌ ºÒÆíÇÏÁö ¾Ê´Â Á¤µµÀÇ Àû´çÇÑ ¼öÁØ¿¡¼­¸¸ »ç¿ëÇØ¾ß ÇÑ´Ù.

º°¸í

³×ÀÓ ½ºÆäÀ̽º´Â ¿ì¿¬ÇÑ Ãæµ¹À» ¹æÁöÇϱâ À§ÇØ º¸Åë ±ä À̸§À» Áִµ¥ À̸§ÀÌ ³Ê¹« ±æ¸é ÀÔ·ÂÇϱ⿡ ¹ø°Å·Ó°í Äڵ嵵 ÁöÀúºÐÇØÁø´Ù. ÀÌ·² °æ¿ì namespace Å°¿öµå ´ÙÀ½¿¡ A=B; ÇüÅ·Π±ä À̸§ ´ë½Å ªÀº º°¸íÀ» Á¤ÀÇÇÒ ¼ö ÀÖ´Ù. º°¸íÀº µ¿ÀÏÇÑ ´ë»ó¿¡ ´ëÇÑ ´Ù¸¥ À̸§À̹ǷΠÀÌÈÄ B¶ó´Â À̸§ ´ë½Å A¸¦ »ç¿ëÇÏ¸é µÈ´Ù. ´ÙÀ½ ¿¹¸¦ º¸ÀÚ.

 

namespace VeryVeryLongNameSpaceName {

     struct Person { };

}

 

void main()

{

     namespace A=VeryVeryLongNameSpaceName;

     A::Person P;

}

 

¾ÆÁÖ ±ä À̸§ÀÇ ³×ÀÓ ½ºÆäÀ̽º À̸§À» A¶ó´Â ªÀº º°¸íÀ¸·Î Á¤ÀÇÇß´Ù. ÀÌÈÄ ÀÌ ³×ÀÓ ½ºÆäÀ̽º¿¡ ¼ÓÇÑ ¸íĪÀ» ÂüÁ¶ÇÒ ¶§ A::À» ´ë½Å ºÙÀÌ¸é µÈ´Ù. ÀÌ·± ¿ëµµ¶ó¸é #define ¸ÅÅ©·Î »ó¼ö¸¦ »ç¿ëÇÒ ¼öµµ Àִµ¥ ¸ÅÅ©·Î´Â Àü¿ªÀûÀ̶ó´Â Á¡ÀÌ ºÒÆíÇÏ´Ù. º°¸í ¼±¾ð¹®Àº ÀÌ ¼±¾ð¹®ÀÌ ÀÖ´Â ºí·Ï¿¡¼­¸¸ È¿·ÂÀ» ¹ßÈÖÇÑ´Ù. ¿©·¯ ´Ü°è·Î ÁßøµÈ ³×ÀÓ ½ºÆäÀ̽º¸¦ »ç¿ëÇÒ ¶§´Â º°¸íÀÌ Æ¯È÷ À¯¿ëÇÏ´Ù.

 

namespace MRG=MyCompany::Research::GameEngine;

 

ÀÌ»óÀ¸·Î C/C++¿¡ ÃÖ±Ù Ãß°¡µÈ ³×ÀÓ ½ºÆäÀ̽º¿¡ ´ëÇØ ¾Ë¾Æº¸¾Ò´Ù. ¸íĪ Ãæµ¹À» ÇØ°áÇϱâ À§ÇÑ ±Ùº»ÀûÀÎ ¹æ¹ýÀ¸·Î¼­ Á¦½ÃµÈ °ÍÀ̱â´Â ÇÏÁö¸¸ ¹®¹ýÀÇ º¹À⼺¿¡ ºñÇØ ½Ç¿ë¼ºÀÌ ³ô´Ù°í º¸±â´Â ¾î·Æ´Ù. ¹ü¿ë ¶óÀ̺귯¸®¸¦ ÀÛ¼ºÇÒ ¶§³ª ÇÑ ¹ø ½á º¼¸¸ÇÏ¸ç ¶Ç ³²ÀÌ ¸¸µé¾î ³õÀº ¶óÀ̺귯¸®¸¦ È°¿ëÇÒ ¶§µµ ³×ÀÓ ½ºÆäÀ̽º¿¡ ´ëÇÑ »ç¿ë¹ýÀ» ¾Ë°í ÀÖ¾î¾ß ÇÑ´Ù. C++ Ç¥ÁØ ¶óÀ̺귯¸®´Â ¸ðµÎ std ³×ÀÓ ½ºÆäÀ̽º¿¡ ¼±¾ðµÇ¾î ÀÖ´Ù. ±×·¡¼­ C++ ÇÁ·Î±×·¥Àº Åë»ó using namespace std;·Î ½ÃÀÛÇÑ´Ù.