Minwoo Dev.

[C++] 윤성우의 열혈 C++ 프로그래밍 Ch01-4 : 파일의 분할 본문

C++

[C++] 윤성우의 열혈 C++ 프로그래밍 Ch01-4 : 파일의 분할

itisminu 2024. 3. 3. 11:26
728x90
반응형
SMALL

문제

앞서 소개한 예제 NameSp2.cpp를 다음과 같이 총 3개의 파일로 분할하여 컴파일 해보자.

  • 헤더파일 : main 함수를 제외한 나머지 두 함수의 선언을 삽입한다.
  • 소스파일1 : main 함수를 제외한 나머지 두 함수의 정의를 삽입한다.
  • 소스파일2 : main 함수만 삽입한다.

 

파일의 이름은 여러분이 임의로 정해도 된다. 하지만, 각 파일에 들어갈 내용은 위의 지시대로 진행해야 한다.

 

 

NameSp2.cpp

#include <iostream>

namespace BestComImpl
{
    void SimpleFunc(void);
}

namespace ProgComImpl
{
    void SimpleFunc(void);
}

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

void BestComImpl::SimpleFunc(void)
{
    std::cout << "BestCom이 정의한 함수" << std::endl;
}

void ProgComImpl::SimpleFunc(void)
{
    std::cout << "ProgCom이 정의한 함수" << std::endl;
}

 

 

 

 

정답

 

header.h (헤더파일 - main 함수를 제외한 나머지 두 함수의 선언을 삽입한다. )

namespace BestComImpl
{
    void SimpleFunc(void);
}

namespace ProgComImpl
{
    void SimpleFunc(void);
}

 

 

src1.cpp ( 소스파일1 - main 함수를 제외한 나머지 두 함수의 정의를 삽입한다. )

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

void BestComImpl::SimpleFunc(void)
{
    std::cout << "BestCom이 정의한 함수" << std::endl;
}

void ProgComImpl::SimpleFunc(void)
{
    std::cout << "ProgCom이 정의한 함수" << std::endl;
}

 

 

src2.cpp ( 소스파일2 - main 함수만 삽입한다. )

#include "header.h"

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

 

 

728x90
반응형
LIST