가끔 소스코드에 등장하기에, 정리된 페이지 보면서 습득~~
namespace
아래 예는 Tree 라는 문자열이 라이브러리 A와 B 에 쓰여 컴파일 오류가 나는 상황, 가장 쉽게는 변수명을 바꾸면 되는데, 양이 많은 경우에는 난감할 따름.
이경우, namespace 가 엄청 유용하다.
(via You complete me :: namespace의 장점과 사용법)
구현은 간단합니다.
namespace로 정의할 것들을 블럭으로 묶으면 됩니다.
namespace A {
struct Tree {};
}
namespace B {
int Tree;
}사용하는 측에서는 다음중 하나를 선택해 쓰면 됩니다.
1. using namespace A;
(의미 : 현재 소스 코드에 A사 라이브러리만 쓰이는경우, 이름충돌이 예상되지 않으므로, A에 있는 모든 이름들을 현재 소스의 범위내에 가져온다)
2. using A::Tree;
(의미 : 현재 소?코드에 A사와 B사의 라이브러리가 동시에 쓰이는데, 현재 블럭에서 사용할 Tree는 A사의 Tree 구조체이다)
3. B::Tree = 10;
(의미 : 현재 소스 코드에 A사와 B사의 라이브러리가 동시에 쓰이는데, 현재 블럭에서 두 회사의 라이브러리가 모두 섞여 쓰이므로 명시적으로 이름을 정해준다)
using
그리고, using 이라는 키워드가 사용되는데 이것에 대한 설명도 첨언,
원래 namespace를 계속 써줘야 하는데 특정 파일내에서는 무조건 A namespace를 사용한다던지, 주로 사용하는 namespace를 생략하고 싶다던지 하면 using을 잘 활용하면 된다.
(via [C++] namespace 사용법 :: 돼민이)
std는 namespace 이며 cout은 함수이다.
std::cout std::endl 매번 std::을 코딩하기 번거롭다.
이를 해결 하기 위해 using을 사용해 std::를 제거해 보자.
[사용법]
using std::cout;
using std::endl;
모양에 따라 이름이 바뀌는 달~~~~~~
'IT > Software' 카테고리의 다른 글
[북마크] 누구나 쉽게 이해할 수 있는 Git 에 입문 (0) | 2019.11.27 |
---|---|
[북마크] 좋은 git commit 메시지를 위한 영어 사전 (0) | 2019.11.26 |
[Tool] ScriptCommunicator - Serial, Network terminal, IPv6 (0) | 2019.10.31 |
[Tool] YAT Serial Network Terminal - 터미널 (0) | 2019.10.29 |
[Dropbox] Paper keyboard shortcuts - 드롭박스 페이퍼 단축키 팁 (0) | 2019.10.29 |