danbibibi
article thumbnail
Published 2023. 8. 11. 14:04
[C++] namespace 언어/C, C++

다음은 hello, world! 를 출력하는 간단한 cpp 프로그램이다.

#include <iostream>

int main() {
  std::cout << "Hello, World!!!" << std::endl;
  return 0;
}

 

iostream 헤더 파일 

  • C++에서 표준 입출력에 필요한 것들을 포함
  • ex) std::cin , std::cout , std::endl 등

 

namespace

  • 어떤 정의된 객체에 대해 어디 소속인지 지정해 주는 것 : namespace 이름 { 내용 }
  • 공동 작업 시 중복된 이름을 가진 함수들이 많아지는 경우가 있음
  • 같은 이름을 가진 함수더라도, 소속된 namespace가 다르면 다른 것으로 취급
  • 자신이 포함되어 있는 namespace 안에서는 namespace를 명시할 필요가 없음
#include "header1.h"
#include "header2.h"

namespace header1 {
    int func() {
      foo();           // header1::foo() 실행
      header2::foo();  // header2::foo() 실행
    }
}
  • using namespace를 이용하여 매번 namespace를 명시하는 것을 생략 가능
#include <iostream>
using namespace std;

int main() {
  cout << "Hello, World!!" << endl;
  return 0;
}
using namespace를 사용하는 것은 함수명 중복 시 오류가 발생할 수 있기 때문에 권장하는 방법은 아님!!

 

이름 없는 namespace

  • 이름이 없는 namespace의 경우 static 키워드를 사용한 것과 같은 효과를 가짐
#include <iostream>

namespace {
    // 해당 파일 안에서만 사용 가능
    // static int OnlyInThisFile() 과 동일
    int OnlyInThisFile() {}

    // static int x 와 동일
    int only_in_this_file = 0;
}

int main() {
  OnlyInThisFile();
  only_in_this_file = 3;
}

 

'언어 > C, C++' 카테고리의 다른 글

[C++] Standard Template Library - STL  (0) 2023.08.24
[C++] 객체 지향 프로그래밍  (0) 2023.08.16
[C++] new, delete  (0) 2023.08.14
[C++] 참조자(reference)  (0) 2023.08.14
[C] 포인터  (0) 2023.06.29
profile

danbibibi

@danbibibi

꿈을 꾸는 시간은 멈춰 있는 것이 아냐 두려워하지 마 멈추지 마 푸른 꿈속으로