๐ฉ ์ด๋ฆ๊ณต๊ฐ์ ์๋ฆฌ
์ด๋ฆ๊ณต๊ฐ : ํ๋ก์ ํธ์ ์งํ์ ์์ด์ ๋ฐ์ํ ์ ์๋ ์ด๋ฆ์ ์ถฉ๋์ ๋ง์ ๋ชฉ์ ์ผ๋ก ์กด์ฌํ๋ ๊ฒ
์กด์ฌํ๋ ์ด๋ฆ๊ณต๊ฐ์ด ๋ค๋ฅด๋ฉด ๋์ผํ ์ด๋ฆ์ ํจ์ ๋ฐ ๋ณ์๋ฅผ ์ ์ธํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
:: ๋ฒ์ ์ง์ ์ฐ์ฐ์
namespace BestComImpl{
void SimpleFunc(void){
cout << "BestCom์ด ์ ์ํ ํจ์" << endl;
}
}
namespace ProgComImpl{
void SimpleFunc(void){
cout << "ProgCom์ด ์ ์ํ ํจ์" << endl;
}
}
int main(void){
BestComImpl::SimpleFunc(); // ์ด๋ฆ๊ณต๊ฐ BestComImpl์ ์ ์๋ SimpleFunc ํธ์ถ
ProgComImpl::SimpleFunc(); // ์ด๋ฆ๊ณต๊ฐ ProgComImpl์ ์ ์๋ SimpleFunc ํธ์ถ
}
๐ ์ด๋ฆ๊ณต๊ฐ ๊ธฐ๋ฐ์ ํจ์ ์ ์ธ๊ณผ ์ ์ ๋ถ๋ฆฌ
namespace BestComImpl{
void SimpleFunc(void);
}
namespace ProgComImpl{
void SimpleFunc(void);
}
int main(void){
BestComImpl::SimpleFunc(); // ์ด๋ฆ๊ณต๊ฐ BestComImpl์ ์ ์๋ SimpleFunc ํธ์ถ
ProgComImpl::SimpleFunc(); // ์ด๋ฆ๊ณต๊ฐ ProgComImpl์ ์ ์๋ SimpleFunc ํธ์ถ
return 0;
}
void BestComImpl::SimpleFunc(void){
cout << "BestCom์ด ์ ์ํ ํจ์" << endl;
}
void ProgComImpl::SimpleFunc(void){
cout << "ProgCom์ด ์ ์ํ ํจ์" << endl;
}
๐ ๋์ผํ ์ด๋ฆ ๊ณต๊ฐ ๋ด์์์ ํจ์ ํธ์ถ
์ ์ธ๋ ์ด๋ฆ๊ณต๊ฐ์ ์ด๋ฆ์ด ๋์ผํ๋ค๋ฉด, ์ด ๋์ ๋์ผํ ์ด๋ฆ๊ณต๊ฐ์ผ๋ก ๊ฐ์ฃผํ๋ค.
์ฆ, SimpleFunc๊ณผ PrettyFunc์ ๋์ผํ ์ด๋ฆ ๊ณต๊ฐ ์์ ์กด์ฌํ๋ ์ํฉ์ด๋ค.
namespace BestComImpl{
void SimpleFunc(void);
}
namespace BestComImpl{
void PrettyFunc(void);
}
์ด๋ฆ๊ณต๊ฐ์ ๋ช ์ํ์ง ์๊ณ ํจ์๋ฅผ ํธ์ถํ๋ฉด, ํจ์์ ํธ์ถ๋ฌธ์ด ์กด์ฌํ๋ ํจ์์ ๋์ผํ ์ด๋ฆ ๊ณต๊ฐ ์์์ ํธ์ถํ ํจ์๋ฅผ ์ฐพ๋๋ค. ๋ฐ๋ผ์ SimpleFunc ํจ์ ๋ด์์๋ ์ด๋ฆ๊ณต๊ฐ์ ๋ช ์ํ์ง ์์ ์ํ์์ PrettyFunc ํจ์๋ฅผ ์ง์ ํธ์ถ ๊ฐ๋ฅํ๋ค.
void BestComImpl::SimpleFunc(void){
cout << "BestCom์ด ์ ์ํ ํจ์" << endl;
PrettyFunc(); // ๋์ผ ์ด๋ฆ๊ณต๊ฐ
ProgComImpl::SimpleFunc(); // ๋ค๋ฅธ ์ด๋ฆ๊ณต๊ฐ
}
void BestComImpl::PrettyFunc(void){
cout << "So Pretty!" << endl;
}
๐ ์ด๋ฆ ๊ณต๊ฐ ์ค์ฒฉ
namespace Parent{
int num = 2; // Parent::num
namespace SubOne{ // Parent::SubOne
int num = 3; // Parent::SubOne::num
}
namespace SubTwo{ // Parent::SubTwo
int num = 4; // Parent::SubTwo::num
}
}
๋ณ์นญ์ ์ธ ๊ฐ๋ฅ
namespace ABC = AAA::BBB::CCC;
ABC::num1 = 10;
ํ๋์ ๋ณ์นญ์ผ๋ก ์ด๋ฆ๊ณต๊ฐ์ ์ ์ธ์ ๋์ ํ ์ ์๋ค.
๐ std::cout, std::cin, std::endl
์ด๋ฆ๊ณต๊ฐ std์ ์ ์ธ๋ cout, cin, endl
namespace std{
cout ...
cin ...
endl ...
}
<iostream>์ ์ ์ธ๋์ด ์๋ cout, cin, endl์ ์ด๋ฆ๊ณต๊ฐ std ์์ ์ ์ธ๋์ด ์๋ค.
์ด๋ฆ์ถฉ๋์ ๋ง๊ธฐ ์ํด์, C++ ํ์ค์์ ์ ๊ณตํ๋ ๋ค์ํ ์์๋ค์ ์ด๋ฆ๊ณต๊ฐ std ์์ ์ ์ธ๋์ด ์๋ค.
using std::cin;
using std::cout;
using std::endl;
์ดํ๋ถํฐ cin, cout, endl์ std::cin, std::cout, std::endl์ ์๋ฏธํ๋ค๋ ์ ์ธ
using namespace std;
์ด๋ฆ๊ณต๊ฐ std์ ์ ์ธ๋ ๊ฒ์ std๋ผ๋ ์ด๋ฆ๊ณต๊ฐ์ ์ ์ธ์์ด ์ ๊ทผํ๊ฒ ๋ค๋ ์ ์ธ
๐ ๋๋ฌด ๋น๋ฒํ using namespace์ ์ ์ธ์ ์ด๋ฆ์ ์ถฉ๋์ ๋ง๊ธฐ ์ํ ์ด๋ฆ๊ณต๊ฐ์ ์ ์ธ์ ์๋ฏธ์๊ฒ ๋ง๋ ๋ค. ๋ฐ๋ผ์ ์ ํ์ ์ผ๋ก ์ฌ์ฉํ ํ์๊ฐ ์๋ค.
๐ฉ ๋ฒ์์ง์ ์ฐ์ฐ์ ::
์ง์ญ๋ณ์๊ฐ ์๋ ์ ์ญ๋ณ์์ ์ ๊ทผ์๋ ์ฌ์ฉ ๊ฐ๋ฅ
int val = 100; // ์ ์ญ๋ณ์
int SimpleFunc(void){
int val = 20; // ์ง์ญ๋ณ์
val += 3; // ์ง์ญ๋ณ์ val์ ๊ฐ 3 ์ฆ๊ฐ
::val+=7; // ์ ์ญ๋ณ์ val์ ๊ฐ 7 ์ฆ๊ฐ
}
'๐ฉโ๐ป ํ๋ก๊ทธ๋๋ฐ > ๐ C++' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++] ํ๋ก๊ทธ๋จ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ | C++ ํ์ค ํค๋ (0) | 2024.04.17 |
---|---|
[C++] const | new & delete | friend | static (0) | 2024.04.17 |
[C++] inline ํจ์ cf. ๋งคํฌ๋ก ํจ์ (0) | 2024.04.14 |
[C++] ํจ์ ์ค๋ฒ๋ก๋ฉ | ๋งค๊ฐ๋ณ์์ ๋ํดํธ ๊ฐ (0) | 2024.04.14 |
[C++] printf์ scanf๋ฅผ ๋์ ํ๋ ์ ์ถ๋ ฅ ๋ฐฉ์ (0) | 2024.04.14 |