ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. 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 À͸í namespace1.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À» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|