본문 바로가기
Coding Test/C++ 기초

[C++ 기초] c++ 프로그램 구성, namespace

by seoyamin 2022. 5. 20.

1. c++ 프로그램의 구성

#include <iostream>

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

 

1-1. 헤더 파일

 #include <iostream>

▷ iostream 헤더 파일은 C++의 표준 입출력에 필요한 것들을 포함

▷ c언어의 #include <stdio.h>와 유사

 

1-2.  main 함수

int main( ) {   return 0;  }

 


 

2. 이름 공간 (namespace)

2-1.  std 

C++ 표준 라이브러리(iostream)의 모든 함수, 객체 등이 정의된 namespace

   - namespace 중 한 종류임

   - ex)  std : : cout 은 std라는 namespace에 정의되어 있는 cout (print) 메소드를 의미 

 

 

2-2.  namespace

어떤 정의된 객체에 대하여 어디에 소속된 객체인지 지정해주는 것
(동일한 이름이어도, namespace가 다르면 다른 것으로 취급)

   - namespace 안에서 정의된 함수는 namespace 안에서 자유롭게 부를 수 있음

   - 만약 다른 namespace에 정의된 애 가져다 쓰려면 명시적으로 다른 namespace : : func( )

   - 어떠한 namespace에도 소속되지 않는 부분에서 namespace의 내용물 사용하려할 때도 namespace : : func( )

 

#include "header1.h"
#include "header2.h"


// namespace header1
namespace header1 {
	int func() {
  		foo();           // 알아서 header1::foo() 가 실행된다.
  		header2::foo();  // header2::foo() 가 실행된다.
	}
} 

// namespce header2
namespace header2 {
	int foo();
	void bar();
}

 

 

▷ 여러개의 namespace 중 기본적으로 사용할 (= 매번 :: 안써줘도 되는 default namespace) 지정하려면,

그 namespace의 정의 앞에 using 키워드를 이용한다 !

 

#include "header1.h"
#include "header2.h"
using namespace header1;

int main() {
  header2::foo();  // header2 에 있는 함수를 호출
  foo();           // header1 에 있는 함수를 호출
}

 

 

▷ 결국, std를 default namespace로 지정해서 자유롭게 쓰려면 using namespace std; 를 써주면 된다!

 

#include <iostream>
using namespace std;

int main() {
  cout << "Hello, World!!" << endl;    //  cout = printf , endl = \n
  return 0;
}

 

 

'Coding Test > C++ 기초' 카테고리의 다른 글

[C++ 기초] 포인터  (0) 2022.07.20
[C++ 기초] 배열  (0) 2022.07.20
[C++ 기초] 조건문, 반복문  (0) 2022.07.13
[C++ 기초] 연산자  (0) 2022.07.13
[C++ 기초] 변수, 상수, 리터럴  (0) 2022.07.13