[명품 C++ Programming] chapter 2 : C++ 프로그래밍의 기본(3) - namespace와 std::

eunee22·2023년 8월 11일

명품 C++ Programming

목록 보기
8/34

제가 대학교 1학년 때 [명품 C++ Programming] 교재로 진행되는 C++ 수업에서 배운 내용을 교재와 ppt를 중심으로 정리한 내용입니다.
(2022.9 ~ 2022.12)
당시에 공부를 위해서 HWP 파일로 정리해 놓은 것을 그대로 올립니다.

🍑namespace와 std::

이름 충돌 사례

  • 해결하는데 많은 시간 요함
  • 여러 명이 서로 나누어 프로젝트를 개발하는 경우
  • 오픈 소스 혹은 다른 사람이 작성한 소스나 목적 파일을 가져와서 컴파일 하거나 링크하는 경우

namespace

  • 이름 충돌을 해결하기 위한 방안
  • 2003년 새로운 ANSI C++ 표준에서 도입
  • 개발자가 자신만의 이름 공간을 생성할 수 있도록 namespace 키워드 도입 → 이름 공간 안에 선언된 이름은 다른 이름공간과 별도 구분

  • 이름 공간 생성
    namespace 키워드 이름 { }
  • 이름 공간 사용
    namespace이름 :: 이름
    :: → 범위 지정 연산자 (C++ 표준)

std::

  • ANSI C++ 표준에서 정의한 이름 공간 중 하나
  • 모든 C++ 표준 라이브러리는 std 이름 공간에 존재
  • 헤더 파일에 선언된 모든 이름은 std 이름 공간 안에 존재
    (ex. cout, cin, endl 등)
  • std 이름 공간에 선언된 이름을 접근하기 위해 std:: 접두어 사용

std:: 접두어의 생략

  • using 지시어 사용 → 일부를 생략 가능하게함. 그러나 endl은 불가능
    ex. cout에 대해서만 std:: 생략 → using std::cout;
  • std 이름 공간에 선언된 모든 이름에 대한 생략 → using namespace std;
profile
보안 공부하는 대학교 4학년 / 시리즈에서 더욱 편하게 글을 찾아보실 수 있습니다:)

0개의 댓글