C++/열혈 C++ 프로그래밍(윤성우 저)

열혈 C++ 프로그래밍 1-4 문제

꾸준함. 2017. 5. 28. 18:03

<문제내용>


C++을 제대로 공부하려면 다음의 내용을 잘 알고 있어야 한다

1.헤더파일의 의미와 정의 방법

2.헤더파일에 삽입할 내용과 소스파일에 삽입할 내용을 구분하는 방법

3.둘 이상의 헤더파일과 소스파일을 만들어서 하나의 실행파일로 컴파일하는 방법


파일분할과 관련된 감을 살리기 위해서 앞서 소개한 예제 NameSp2.cpp를 다음과 같이 총 3개의 파일로 분할해서 컴파일 해보자

1.헤더파일 main함수를 제외한 나머지 두 함수의 선언을 삽입

2.소스파일1 main 함수를 제외한 나머지 두 함수의 정의를 삽입

3.소스파일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) //이름공간 BestComImpl 선언된 함수 SimpleFunc 정의부분이다. 이렇듯 ::연산자는 함수의 호출 이외에도 다양하게 사용된다

{

        std::cout << "BestCom 정의한 함수" << std::endl;

}

 

void ProgComImpl::SimpleFunc(void) //마찬가지로 이름공간 ProgComImpl 선언된 함수 SimpleFunc 정의부분이다

{

        std::cout << "ProgCom 정의한 함수" << std::endl;

}

 

[헤더파일]

/*

C++ 제대로 공부하려면 다음의 내용을 알고 있어야 한다

1.헤더파일의 의미와 정의 방법

2.헤더파일에 삽입할 내용과 소스파일에 삽입할 내용을 구분하는 방법

3. 이상의 헤더파일과 소스파일을 만들어서 하나의 실행파일로 컴파일하는 방법

 

파일분할과 관련된 감을 살리기 위해서 앞서 소개한 예제 NameSp2.cpp 다음과 같이 3개의 파일로 분할해서 컴파일 해보자

1.헤더파일 main함수를 제외한 나머지 함수의 선언을 삽입

2.소스파일1 main 함수를 제외한 나머지 함수의 정의를 삽입

3.소스파일2 main 함수만 삽입

*/

#ifndef __NAME_SP2

#define __NAME_SP2

 

namespace BestComImpl

{

        void SimpleFunc(void);

}

 

namespace ProgComImpl

{

        void SimpleFunc(void);

}

 

#endif

 

[소스파일 1]

#include <iostream>

#include "NameSp2.h"

 

void BestComImpl::SimpleFunc(void)

{

        std::cout << "BestCom 정의한 함수" << std::endl;

}

 

void ProgComImpl::SimpleFunc(void)

{

        std::cout << "ProgCom 정의한 함수" << std::endl;

}

 

[소스파일 2]

#include "NameSp2.h"

 

int main(void)

{

        BestComImpl::SimpleFunc();

        ProgComImpl::SimpleFunc();

        return 0;

}


개발 환경:Visual Studio 2017


지적, 조언, 질문 환영입니다! 댓글 남겨주세요~


[참고] 열혈 C++ 프로그래밍 윤성우 저

반응형