** 이름공간(namespace) **

  정의된 객체, 함수에 대해 어디소속인지 지정해주는 것
  중복된 이름의 객체, 함수여도 소속된 이름 공간이 다르면 다른 것으로 취급.

 

  std::cout, std::cin, std::endl 에서 std는 c++의 표준라이브러리의 모든 함수, 객체 등이 정의된 이름공간(namespace)

  namespace space1{}   -- 이름공간에 포함되고자하는 함수나 객체들을 넣어주어 이름 공간을 만들어 주면 된다.

  ('space1' 이라는 이름 공간 정의 )

1
2
3
4
5
6
#include <iostream>
 
using namespace std;   // "iostream" 안에 이름공간 "std"를 사용하겠다.
 
cout << "Hello, World" << endl //cout 과 endl 은 "iostream" 헤더파일 안에 
                               //"std"라는 이름 공간에 정의되어 있는 것들 

  using namespace 를 사용해 어떤 이름공간을 사용하겠다라고 선언하는 것은 권장하지 않는다고 한다.
    ---> 명시적으로 "std:: "와 같이 붙여주는 것이 함수의 한정적인 사용을 막아 오류를 예방할 수 있음.

  이름공간의 이름을 명명하지 않은 경우, 해당 파일 안에서만 접근 가능. "static" 과 같은 효과
    형태 : namespace {}

반응형

'C++' 카테고리의 다른 글

클래스(Class) (2) - 접근 지정자  (0) 2020.03.31
클래스(Class) (1) - 객체, 클래스 설명  (0) 2020.03.31
메모리 할당 (new,delete)  (0) 2020.01.26
참조자(Reference)  (0) 2020.01.23

+ Recent posts