[C++] Header File (헤더 파일)
C++에서 헤더는 "어딘가에" 정의된 기능의 선언을 관리하는 영역을 의미합니다. 기본적으로 헤더는 선언을 모아둔 것으로 그것을 기술한 파일이 바로 헤더 파일입니다.
헤더 파일은 #include를 이용해서 소스에 포함시킬 수 있습니다. 예를 들어 다음과 같이 Token 코드의 구조를 개선하고자 Token 코드의 선언과 정의 부분을 분리할 때 아래와 같이 Token.h 파일을 만들 수 있습니다.
아래는 각 소스 파일을 구현한 코드입니다.
// Main.cpp
#include "Token.h"
int main()
{
Token token1(4);
Token token2(5);
token1.printToken();
token2.printToken();
return 0;
}
// Token.cpp
#include "Token.h"
Token::Token(int val) {
this->val = val;
}
void Token::printToken() {
std::cout << this->val << std::endl;
}
// Token.h
#include <iostream>
class Token {
private:
int val;
public:
Token(int val);
void printToken();
};
여기서 눈여겨 봐야할 것은 Token.h 헤더 파일에 추가한 #include <iostream>이 #include "Token.h"문을 통해 Token.h를 포함한 소스 파일들에 같이 포함된다는 것입니다. Token.cpp에서 #include <iostream>을 포함하지 않았지만 std:cout << .. << std::endl; 구문을 쓴 것을 보면 알 수 있죠.
그렇다면 여기서 #include 전처리 키워드의 기능을 유추 할 수 있습니다. 말그대로 #include는 해당 헤더파일을 코드 그대로 소스 코드내에 포함시킨다는 의미인 것입니다.
'기타 > C++' 카테고리의 다른 글
[C++] 오버플로우(Overflow) 체크방법 (0) | 2021.03.30 |
---|---|
[C++] 문자열 앞뒤 공백 제거 방법 ( Boost 라이브러리 안 씀 ) (0) | 2021.03.30 |
[C++] namespace, FQN(fully Qualified Name) (0) | 2021.03.30 |
[C++] constexpr (0) | 2021.03.30 |
[C++] 스마트포인터 (0) | 2021.03.30 |
[C++] volatile (0) | 2021.03.30 |
[C++] 얕은 복사, 깊은 복사 (0) | 2021.03.30 |
[C++] virtual function 동작 방식 (0) | 2021.03.30 |