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