namespace Ȱ¿ë
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

Contents

1 namespace
1.1 ÀϹÝÀûÀΠȰ¿ë
1.2 namespace º°Äª
1.3 Áßø namespace
1.4 using namespace
1.5 À͸í namespace
1.6 namespace ÀÀ¿ë

1 namespace

C++ÀÇ namespace´Â JavaÀÇ Package¿Í ºñ½ÁÇÑ ¿ëµµ·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. À̸§°ø°£À̶ó°í ¹ø¿ªÇϱ⵵ Çϴµ¥, ¿©·¯ À̸§¿µ¿ª¿¡¼­ Ŭ·¡½º,ÇÔ¼ö,º¯¼ö¸¦ ³ª´©¾î¼­ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

´ë±Ô¸ð ÇÁ·ÎÁ§Æ®¸¦ ÁøÇàÇÏ´Ùº¸¸é À̸§ÀÌ Áߺ¹µÇ´Â À§ÇèÀ» ¸¸³ª°Ô µÇ´Âµ¥, namespace¸¦ ÀÌ¿ëÇØ¼­ ÀÌ·¯ÇÑ À§ÇèµéÀ» ÇÇÇÏ°í ¹öÀüÀ» °ü¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×¸®°í ´Ù¸¥ ¿©·¯°¡Áö Àç¹ÌÀÖ´Â ÀÀ¿ëÀÌ °¡´ÉÇÕ´Ï´Ù.

1.1 ÀϹÝÀûÀΠȰ¿ë

¿¹ÄÁµ¥ ¾Æ·¡¿Í °°Àº °æ¿ì¸¦ ¿¹»óÇØ º¼ ¼ö ÀÖ½À´Ï´Ù.
void StrReplace()  // AÆÀ¿¡¼­ ¸¸µç ¹®ÀÚġȯ ÇÔ¼ö 
{ 
    cout << "A : StrReplace" << endl; 
} 
 
void StrReplace() // BÆÀ¿¡¼­ ¸¸µç ¹®ÀÚġȯ ÇÔ¼ö 
{ 
    cout << "B : StrReplace" << endl; 
} 
 
ÀÌ ÇÔ¼ö¸¦ È£ÃâÇÒ °æ¿ì, ¾î¶² ÇÔ¼ö¸¦ È£ÃâÇØ¾ß ÇÏ´ÂÁö ¾Ë ¼ö°¡ ¾øÀ¸¹Ç·Î redefinition¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù. namespace¸¦ ÀÌ¿ëÇϸé ÀÌ ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ½À´Ï´Ù.

namespace A 
{ 
    void StrReplace()  // AÆÀ¿¡¼­ ¸¸µç ¹®ÀÚġȯ ÇÔ¼ö 
    { 
        cout << "A : StrReplace" << endl; 
    } 
} 
 
namespace B  
{ 
    void StrReplace() // BÆÀ¿¡¼­ ¸¸µç ¹®ÀÚġȯ ÇÔ¼ö 
    { 
        cout << "B : StrReplace" << endl; 
    } 
} 
int main() 
{ 
    A::StrReplace(); 
    B::StrReplace(); 
} 
 

1.2 namespace º°Äª

namespace°¡ ªÀ¸¸é Ãæµ¿À» ÀÏÀ¸Å³ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÇÏÁö¸¸ ³Ê¹« ±æ¸é
namespace Joinc_Application_CommonFunc 
{ 
    class RegEx(); 
    class Time(); 
} 
 

»ç¿ëÇϴµ¥, ¾Ö·Î»çÇ×ÀÌ ²ÉÇÉ´Ù. namespace´Â º°ÄªÀ» Çã¿ëÇÑ´Ù.
int main() 
{ 
    namespace JAC = Joinc_Application_CommonFunc; 
    JAC::RegEx(); 
    JAC::Time(); 
} 
 

1.3 Áßø namespace

namespace´Â ÁßøÀÌ °¡´ÉÇÕ´Ï´Ù. Counting Log¸¦ ¸¸µç´Ù°í °¡Á¤ÇØ º¸°Ú½À´Ï´Ù. CountingÀº User, Service, transactionÀ¸·Î ÀÌ·ç¾î Áý´Ï´Ù. ÀÌ °æ¿ì ´ÙÀ½°ú °°ÀÌ ÁßÃ¸ÇØ¼­ namespace¸¦ ±¸¼ºÇÒ ¼ö ÀÖÀ» °Ì´Ï´Ù.
namespace mycounting 
{ 
    namespace user 
    { 
        void Counting(); 
    } 
    namespace service 
    { 
        void Counting(); 
    } 
    namespace transaction 
    { 
        void Counting(); 
    } 
} 
 

Áßø namespace´Â ±ä À̸§ÀÇ namespace¸¦ ´ë½ÅÇÒ ¼öµµ ÀÖ½À´Ï´Ù. namespace Joinc_Application_CommonFunc ´ë½Å ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖÀ» °Ì´Ï´Ù.
namespace Joinc 
{ 
    namespace::Application 
    { 
        namespace::CommonFunc 
        { 
        } 
    } 
} 
 

1.4 using namespace

Áßø namsespace¸¦ ¿¹·Î µé¾îº¸°Ú½À´Ï´Ù. À̰æ¿ì ´ÙÀ½°ú °°ÀÌ »ç¿ëÇØ¾ß ÇÒ °Ì´Ï´Ù.
mycounting::user::Counting(); 
mycounting::transaction::Counting(); 
mycounting::service::Counting(); 
 

À̸§ °ø°£ÀÌ ¸ðµÎ ¸í½ÃµÇ´Ï ¸íÈ®ÇØ¼­ ÁÁ±ä ÇÏÁö¸¸ »ç¿ëÇϱⰡ ¿©°£ ºÒÆíÇÒ ¼ö ÀÖÀ» °Í °°½À´Ï´Ù. usingÀ» ÀÌ¿ëÇØ¼­ »ç¿ëÇÒ À̸§°ø°£À» ¹Ì¸® ¸í½ÃÇϸé, ÄÄÆÄÀÏ·¯°¡ ¾Ë¾Æ¼­ À̸§°ø°£À» ã¾Æ°¥ ¼ö ÀÖµµ·Ï ¸¸µé ¼ö ÀÖ½À´Ï´Ù.
// mycounting À̸§°ø°£À» »ç¿ëÇÒ °ÍÀ» ¸í½ÃÇÕ´Ï´Ù. 
using namespace mycounting;  
 
user::Counting(); 
transaction::Counting(); 
service::Counting(); 
 
»ç¿ëÇÏ±â ÆíÇØÁ³±º¿ä.

1.5 À͸í namespace


1.6 namespace ÀÀ¿ë

ÀÌ ÇÁ·Î±×·¥Àº ¸î°³ÀÇ ¸ðµâ·Î ±¸¼ºµÈ ¸ÖƼ ½º·¹µå ±â¹Ý À¥ ¼­¹ö·Î À¯Àú/¼­ºñ½º/Æ®·£Àè¼Ç º°·Î count ·Î±ëÀ» ÇØ¾ß ÇÕ´Ï´Ù. ¿©·¯ ¸ðµâ¿¡¼­ count¸¦ ÇØ¾ß Çϱ⠶§¹®¿¡ ÇÁ·Î±×·¥ Àü¿ª¿¡¼­ Ä«¿îÆ® Á¤º¸°¡ À¯ÁöµÇ¾î¾ß ÇÕ´Ï´Ù. ±×·¡¼­ namespace·Î °ü¸®Çϱâ·Î Çß½À´Ï´Ù.

my.h
#ifndef _MY_H 
#define _MY_H 
#include <string> 
#include <iostream> 
 
using namespace std; 
class Count 
{ 
private: 
    string name; 
    int count; 
public: 
    Count(string aname) 
    { 
        name = aname; 
        count = 0; 
        cout << "Create " << name << endl; 
    } 
    void Counting(int a) 
    { 
        count += a;  
    } 
    void Print() 
    { 
        cout << name << " : " << count << endl; 
    } 
}; 
 
namespace count 
{ 
    namespace user 
    { 
        void Init(string); 
        Count *GetInstance(); 
    } 
    namespace service  
    { 
        void Init(string); 
        Count *GetInstance(); 
    } 
    namespace transaction  
    { 
        void Init(string); 
        Count *GetInstance(); 
    } 
} 
#endif 
 

my.cc
#include "my.h" 
 
namespace count 
{ 
    namespace user 
    { 
        class Count *myCount; 
        void Init(string name) 
        { 
            myCount = new Count(name); 
        } 
        Count *GetInstance() 
        { 
            return myCount;  
        } 
    } 
    namespace service  
    { 
        class Count *myCount; 
        void Init(string name) 
        { 
            myCount = new Count(name); 
        } 
        Count *GetInstance() 
        { 
            return myCount; 
        } 
    } 
    namespace transaction  
    { 
        class Count *myCount; 
        void Init(string name) 
        { 
            myCount = new Count(name); 
        } 
        Count *GetInstance() 
        { 
            return myCount; 
        } 
    } 
} 
 

»ç¿ë
#include "my.h" 
#include <iostream> 
 
using namespace std; 
using namespace count; 
 
int main() 
{ 
    service::Init("service"); 
    transaction::Init("transaction"); 
    user::Init("user"); 
 
    service::GetInstance()->Counting(4); 
    service::GetInstance()->Print(); 
    service::GetInstance()->Counting(4); 
    service::GetInstance()->Print(); 
 
    transaction::GetInstance()->Counting(100); 
    transaction::GetInstance()->Print(); 
} 
 
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.