C++에서 namespace에 관한 질문...
글쓴이: leolo / 작성시간: 목, 2004/03/18 - 8:40오전
제가 C만해서 C++에서 namespace에 대해 잘 모릅니다.
아래 코드에서 말하는 namespace가 무엇인가요?
좀 자세히 부탁드립니다... ^^
#include <iostream> using namespace std; namespace first { int a; int b; } namespace second { int a; int b; } int main() { first::a = 100; first::b = 200; second::a = 400; second::b = 800; cout << first::a + second::a << endl; cout << first::b + second::b << endl; }
또한 아래 코드 처럼, 2가지 형식으로 쓸때.
그냥 쓸수 있는 것인가요. 그러니까? 우리가 C에서
초기화를 int a = 5; 하는 것이랑, int a; a = 5; 하는 것이랑..
똑같은 것 처럼.. 그냥.. 그런 식으로 사용하는 것인가요?
#include <iostream> using namespace std; int main() { cout << "Hello World!!!" << endl; return 0; }
또는,
코드:
#include <iostream> int main() { std::cout << "Hello World!!!" << std::endl; return 0; }
Forums:
프로그래밍을 하다보면 여러가지 라이브러리를 사용하게 됩니다. 라이브러리는
프로그래밍을 하다보면 여러가지 라이브러리를 사용하게 됩니다. 라이브러리는 많은 클래스, 변수, 함수 등을 포함하고 있고 각기 나름대로의 이름을 가지고 있습니다.
그런데, 이런 이종 라이브러리간의 클래스, 변수, 함수들 중에 이름이 같은 경우가 생기면 곤란한 경우가 생깁니다. 서로 같이 사용할 수 없는... 링크시에 분명히 에러가 날 것입니다. C++의 경우 이름은 최종 링크시 오직 하나만 있어야 한다고 합니다.
이런 문제를 해결하기 위해서 namespace로 둘러싸서 정의한 클래스, 변수, 함수 등은 다음 처럼 정확히 해당 namespace 이름과 스코프 연산자를 이용해서 사용하거나
아니면, using namespace 로 생략형으로 사용할 수 있도록 하였습니다.
namespace는 이름 충돌 문제를 해결하기 위해서 만들어진 도구라고 생각합니다.
p.s. 최근의 C++ 책들은 namespace를 많이 언급하고 있습니다. 좋은 텍스트를 꼭 참고하시면 좋겠습니다.
C++ for Linux in 21 Days 책 추천합니다 :)nam
C++ for Linux in 21 Days 책 추천합니다 :)
namespace 설명이 잘 되어 있습니다.
인생, 쉬운 것만은 아니네..
댓글 달기