분할 구현이란?
우리는 여태 한 cpp파일 안에서만 작업해왔다.
이제는 헤더와 파일을 분리해서 작업하는 법을 배우자.
함수 원형
int main(){
show();
}
void show(){
cout<<"Hello World"<<endl;
}
이 코드는 정상적으로 실행 될 수 있을까?
⇒아니다 내가 사용할 함수는 사용 시점 위에 선언이 완료 되어야만 사용할 수 있다.
너무 불편하지 않은가????
이를 위해 함수 원형이라는 것이 존재한다. 아래 코드를 보자.
#include <iostream>
using namespace std;
void Test();//함수 원형
int main()
{
Test();
}
void Test() {
cout << "Hello World" << endl;
}
함수 원형은 함수가 존재하다는 것을 알려주는 역할을 한다.
컴파일 단계에서 그 함수가 있다고 알려주고,링크 단계에서 그 함수의 내용을 링크 해주게 된다.
그럼, 그 함수의 내용은 어디에서나 적어도 문제가 없을 것이다.!!
만일 함수의 원형만 적고 내용을 적어주지 않는다면 링크단계에서 링크를 하지 못해 에러가 날 것이다.
하지만, 그렇다고 한 파일 안에 모든 함수의 원형과 함수의 내용을 적을 수는 없다.
함수와 내용들을 효율적으로 관리하기 위해 분할 구현이라는 것을 사용한다.
우리는 코드 실행 파일,
함수 원형을 적은 파일,
함수 내용을 적은 파일을
분리하여 사용해보록 하자.
소스파일을 우클릭 하면 쉽게 헤더나 파일을 추가할 수 있다.
DDEFun.h(함수 원형)
int Add(int a, int b);
void Show();
DDE.cpp(함수 내용)
#include "DDEFun.h"
#include <iostream>
using namespace std;
int Add(int a, int b) {
return a + b;
}
void Show() {
cout << "Hello World" << endl;
}
Hello_cpp_world.cpp(프로그램 내용)
#include <iostream>
#include "DDEFun.h"
using namespace std;
int main()
{
int data = Add(5, 5);
Show();
cout << data << endl;
}
우리는 DDEFun이라는 헤더파일에 우리가 사용할 함수들의 원형을 선언해 주고,
이 헤더를 포함하여 DDE라는 코드파일에 이 함수들의 내용을 적어주었다.
프로그램, 최초의 실행함수 main은 Hello_cpp_world.cpp에 위치한다.
만일 컴파일 시, 우리는 #include "DDEFun.h" 를 통해 함수의 원형이 들어가 있는
헤더를 포함시켰으므로 컴파일 과정에서는 문제가 없다.
하지만 DDE.cpp(함수 내용) 라는 파일에 함수의 내용들이 선언되지 않았다면
링크 과정에서 에러가 나올 것이다.
함수 원형의 헤더를 포함시키는 함수 내용의 코드파일을 작성하고,
그렇게 묶인 헤더를 메인 실행 함수가 포함함으로써 코드는 세개로 분할된 상태에서
동작하게 된다.
즉, 코드를 분할해 더욱 효과적으로 분류하여 편하게 관리할 수 있게 되었다.
'프로그래밍 언어 > C++ [기본]' 카테고리의 다른 글
[C++기본] 13.정적 변수와 외부 변수 (1) | 2021.08.28 |
---|---|
[C++기본] 12.분할 구현과 문제점 (0) | 2021.08.26 |
[C++기본] 10.지역 변수와 전역 변수 (0) | 2021.08.26 |
[C++기본] 9.구조체 (0) | 2021.08.26 |
[C++기본] 8.배열 (0) | 2021.08.25 |