c, c++

[cpp] 헤더파일 / 소스파일 분리

장비 정 2022. 7. 6. 22:09

혼자 cpp 의 namespace 부분을 공부하던 중 헤더파일, 소스파일을 불러오는 방식에 대해 헷갈리는 게 생겨 정리해둔다.

 

// namespace.h
namespace BestComImpl
{
	void SimpleFunc(void);
}

namespace ProComImpl
{
	void SimpleFunc(void);
}

다른 namespace 내 같은 이름의 함수들을 선언한다.

 

// NoMain.cpp
#include <iostream>
#include "namespace.h"

void BestComImpl::SimpleFunc(void)
{
	std::cout<<"BestCom Func"<<std::endl;
}

void ProComImpl::SimpleFunc(void)
{
	std::cout<<"ProCom Func"<<std::endl;
}

#include 로 앞서 선언한 함수들이 있는 헤더파일을 불러온다.

생성한 헤더파일들은 <> 가 아닌 "" 로 불러오는 것을 주의한다.

 

// main.cpp
#include <iostream>
#include "namespace.h"

int main(void)
{
	BestComImpl::SimpleFunc();
    ProComImpl::SimpleFunc();
    
    return 0;
}

각각 함수를 선언했던 헤더파일, 함수를 정의했던 소스파일들을 불러와 main 함수에 작성한다.

함수가 정의 된 소스파일을 따로 불러올 필요 없이 함수가 선언 된 헤더파일만 불러오면 된다.