[C++ 스터디] 네임스페이스란
2022. 7. 1. 20:00ㆍ03. Resources/C, C++
728x90
반응형
네임스페이스
코드에서 이름이 서로 충돌하는 문제를 해결하기 위해 나온 개념
사용하기 위해서는 namespace 블록으로 감싼다.
// namespace.h namespace mycode { void foo(); }
선언 뿐 아니라 구현 부분도 묶을 수 있다.
// namespace.cpp #include <iostream> #include "namespaces.h" void mycode::foo() { std::cout << "foo() called in the mycode namespace" << std::endl; }
또는
// namespace.cpp #include <iostream> #include "namespaces.h" namespace mycode { void foo() { std::cout << "foo() called in the mycode namespace" << std::endl; } }
호출을 위해서는 네임스페이스 뒤에 :: 를 이용하여 부르면 된다.
using namespace xxx를 이용하면 xxx 네임스페이스의 접두어를 생략할 수 있다.
- 헤더 파일 안에서는 절대로 using 문을 작성하면 안 된다. 그러면 그 헤더 파일을 인클루드 하는 모든 파일에서 using 문으로 지정한 방식으로 호출해야 한다.
C++17에서는 중첩된 네임스페이스를 좀 더 쉽게 사용할 수 있도록 개선했다.
기존은 아래와 같다.
namespace MyLibraries { namespace Networking { namespace FTP { /* ... */ } } }
C++17 부터는 아래와 같다.
namespcae MyLibraries::Networking::FTP { /* ... */ }
반응형
'03. Resources > C, C++' 카테고리의 다른 글
[C++ 스터디] 열거 타입 (enum), 구조체 (struct) (0) | 2022.07.05 |
---|---|
[C++ 스터디] 리터럴, 변수, 그리고 연산자 (0) | 2022.07.03 |
[C++ 스터디] 소스 코드를 프로그램으로 만드는 과정 (0) | 2022.06.30 |
[C++ 스터디] 전문가를 위한 C++ 공부 시작 (0) | 2022.06.29 |
[맥북/C++] 맥북 MacOS VSCode C++ 컴파일 환경 세팅 (0) | 2022.05.23 |