네임스페이스 란 무엇입니까? 네임스페이스 std를 사용하여 이 문장을 작성하는 이유는 무엇입니까?
이는 C++에 새로 도입된 메커니즘으로, 실제 생활에서 같은 이름을 가진 두 사람이 그러하듯이 주로 여러 모듈 간의 이름 충돌 문제를 해결하기 위한 것입니다. C++에서는 이름 충돌을 방지하기 위해 동일한 이름을 다른 공간에 배치합니다.
예를 들어 표준 C++ 라이브러리에서 제공하는 개체는 cin, cout 및 endl과 같은 표준 네임스페이스 std에 저장되므로 프로그램과 같은 C++ 프로그램에서 std 네임스페이스를 사용하는 문장을 볼 수 있습니다.
#include<iostream>usingnamespacestd;intmain(){cout<<만나세요!<<endl;return0;}
프로그램이 cout과 endl을 사용하는 경우에는 std 네임스페이스를 사용하도록 미리 알려주어야 합니다. 이 외에도 두 가지 다른 작성 방법이 있습니다.
두 번째 유형: 도메인 한정자::를 사용하여 하나씩 지정하세요. 방금 작성한 코드는 다음과 같이 작성할 수도 있습니다.
#include<iostream>intmain(){std::cout<<만나세요!<<std::endl;return0;}
그거 봤어? cout과 endl은 각각 std::로 지정되어 std에서 왔음을 나타냅니다.
세 번째 방법: using 및 도메인 한정자를 사용하여 코드와 같이 사용할 이름을 지정합니다.
#include<iostream>usingstd::cout;usingstd::endl;intmain(){cout<<만나세요!<<endl;return0;}
그거 봤어? using을 사용하여 특정 이름을 먼저 선언할 수도 있습니다.
위의 세 가지 방법 중 하나를 사용할 수 있습니다. 향후 통일성과 편의를 위해 튜토리얼에서는 첫 번째 작성 방법을 채택하겠습니다.
사실 초기 C++ 표준에는 네임스페이스 개념이 없었고 포함된 헤더 파일도 C와 동일하며 접미사 .h가 붙었다는 점을 언급할 가치가 있습니다. 단지 .h가 없는 헤더 파일을 사용하여 새 표준에 포함할 경우 네임스페이스를 선언해야 하며 포함된 헤더 파일이 먼저 오고 사용된 네임스페이스가 마지막에 선언된다는 것입니다.