반응형
  • namespace 요소에 접근하는 3가지 방법
    • qualified name (  완전한 이름 )을 사용한 방법.
    • using declaration ( 선언 )을 사용한 방법.
    • using directive ( 지시어 )를 사용한 방법.

#include "pch.h"
#include <iostream>

// Harry namespace
namespace Harry
{
    void init() { printf("Harry Init\n"); }
    void destroy() { printf("Harry destroy\n"); }
}

// global namespace
void init()
{
    printf("Global init\n");
}

int main()
{
    std::cout << "Harry World!\n"; 

    // 1. 전체 이름 접근(qualified name)
    Harry::init(); // OK
    Harry::destroy(); // OK

    // 2. using 선언 접근(using declaration)
    using Harry::init;
init(); // OK destroy() // Error // 3. using 지시어 접근(using directive) using namespace Harry;
init(); // OK destroy(); // OK
// 4. global namespace(전역 함수 호출) ::init(); // OK }


  • C++의 모든 표준 라이브러리는 std namespace 안에 있다.
  • C++ 표준 라이브러리를 사용하는 3가지 방법
    • qualified name ( 완전한 이름 )을 사용한 방법 -> std::min(1, 2)
    • using declaration ( 선언 )을 사용한 방법 -> using std::min;
    • using directive ( 지시어 )를 사용한 방법 -> using namespace std;
      • using namespace std;를 사용할 경우 이름 충돌에 주의 필요
    • 표준 라이브러리를 완전한 이름을 사용하는 것이 좋다.
  • 표준 라이브러리 헤더 파일 모양
    • C : 파일 이름 뒤에 .h 를 붙인다. -> <stdio.h>
    • C++ : 파일 이름 뒤에 .h 가 붙지 않는다. -> <cstdio>
    • 사용자가 헤더를 만들때는 .h 를 붙이는 것이 관례이다. -> "myheader.h"
  • C++에서 C언어 헤더 사용하는 방법
    • 기존의 C언어 헤더 파일을 모두 계속 사용할 수 있다.
    • C언어 헤더에서 '.h'를 제거하고 앞에 'c'를 붙여서 사용한다.
      • <string.h> -> <cstring>
      • <stdlib.h> -> <cstdlib>
      • <math.h> -> <cmatch>


반응형

+ Recent posts