최상단 광고

2012년 4월 16일 월요일

[C++강좌] - 1-5-2. namespace에 대해

namespace가 예상외의 복병이였군요! 
강좌가 길어집니다..으윽...
그래도 우리는 계속 갑니다~ 오예~
소스/프로그램은 1-5를 통합하여 올리겠습니다.

 *이 강좌는 C언어를 끝냈다는 가정하에 실시합니다.

┌───────────────┐
---앞으로의 목차---
5. namespace에 대해
2-1. bool형에 대해
2-2. Reference란.
└───────────────┘

<지난 강좌를 살펴보고 와주세요 !! : http://blog.naver.com/owndks98o/120155695209 >

1-5-2. namespace에 대해.
강좌를 계속합니다! 길어질수록 지루해 진다는 것을 잘 아는 제가 억지로 끌고 갈 이유야 없지요 하핫;;

방금전 강좌까지
A101::call();
과 같은 선언문을 보았습니다!
잘 보세요~ 어디서 많이 본 선언문 아닌가요?

네~ 그래요.
std::cout std::endl std::endl
과 같은 것들도 똑같은 형태를 하고 있습니다.

그렇다면 유추해 보죠!
std가 무엇일까요? 맞습니다! 바로, std도 namespace랍니다!

우리는 지금까지 std::cout std::cout std::cout ... 정말 너무나도 길게 써왔습니다.
cout, cin, endl 이렇게 간결하게 쓸수 있다면 얼마나 좋을까요?

그렇다면 꿈과 희망을 가능하게 해주는 C++의 능력을 살펴보죠!

/*
Using.cpp
*/

#include

namespace A101{
void call(){
std::cout<<"101동 leanix! 야 나와!"<
}
}
using A101::call;

int main(){
call();
return 0;
}

어엇? A101::call(); 처럼 길게만 작성해야 했던것을 call();로 짧게 작성함을 볼수 있습니다!

이걸 가능하게 해주는 키워드가 무엇일까요?
바로 using 입니다!!

using은 아래의 뜻을 가집니다.
"앞으로 call()이라는 함수를 호출하면 A101의 call을 호출하라!"

그렇다면 std:: 를 없에봅시다!

/*
Using2.cpp
*/

#include
using std::cout;
using std::endl;

int main(){
cout<<"leanix!"<
return 0;
}

후~ 간단해 졌어요~!!

더욱 간단하게 고쳐볼까요?

/*
Using3.cpp
*/

#include
using namespace std;

int main(){
cout<<"leanix!"<
return 0;
}

위의 using namespcae std; 부분은 std라는 namespace를 다 사용하겠다! 하는 선언입니다.

만약, 전역변수와 namespace의 변수가 같은 이름일 빼에는,
namespace의 변수가 우선되므로,
전역 변수를 사용하려면,
::변수명
처럼 이용해 주시면 된답니다!

이것으로 길었던 namespace에 대한 부분을 마칩니다.
더불어 1단원의 끝이기도 하죠.

다음강(2-1)에서는 bool형에 대해 알아보죠!

댓글 없음: