KoreanFoodie's Study
C++ 기초 개념 1 : 이름공간(namespace) 본문
이름 공간 (namespace)
namespace는 정의된 객체가 어디 소속인지를 지정해준다.
#include "header1.h"
#include "header2.h"
int main() {
header1::foo();
header2::foo();
}
위의 예시처럼, header1과 header2에 같은 이름의 함수 foo( )가 정의되어 있더라도 namespace를 사용하면 구분해서 사용할 수 있다.
또한, "using namespace std;"와 같은 방식은 추천하지 않는다. std에는 수많은 함수들이 포함되어 있기 때문에, 충돌이 일어날 수 있기 때문이다.
이름 없는 이름 공간
이름 없는 이름 공간을 설정할 경우, 정의된 것들은 해당 파일 안에서만 접근할 수 있게 된다. 이 경우 마치 static 키워드를 사용한 것과 같은 효과를 낸다.
#include <iostream>
namespace {
// 이 함수는 이 파일 안에서만 사용할 수 있다.
// 이는 마치 static int OnlyInThisFile() 과 동일하다.
int OnlyInThisFile() {}
// 이 변수 역시 static int x 와 동일합니다.
int only_in_this_file = 0;
} // namespace
int main() {
OnlyInThisFile();
only_in_this_file = 3;
}
추후 헤더 파일을 통해 위 파일을 받았다 하더라도, 저 익명의 namespace안에 정의된 모든 것들은 사용할 수 없게 된다.
'Tutorials > C++ : Beginner' 카테고리의 다른 글
C++ 기초 개념 4-1 : 객체 지향 프로그래밍, 객체와 클래스 (0) | 2021.12.20 |
---|---|
C++ 기초 개념 3 : new와 delete (0) | 2021.12.20 |
C++ 기초 개념 2 : 참조자(레퍼런스) (0) | 2021.12.20 |
C++ 정리 및 리마인드 (모던 C++를 중심으로) (0) | 2021.11.17 |
모던 C++ 입문 1 - C++ 기초 (초기화, 리터럴, 예외, 포인터) (0) | 2021.11.14 |
Comments