작은 걸음 VIII — 여러 파일로 프로그램 만들기
파일마다 역할 정하기
값을 함수에 전달하고 결과를 돌려받습니다.
점수 계산을 분리하기
파일 이름은 역할을 설명하면 좋습니다. 새로운 ScoreCard 프로젝트를 만들고 main.cpp, score.h, score.cpp를 같은 폴더에 둡니다. 아래 코드로 각각 바꿔 보세요.
score.h
#pragma once
int add_points(int score, int points);
score.cpp
#include "score.h"
int add_points(int score, int points)
{
return score + points;
}
main.cpp
#include "score.h"
void small_main()
{
int score = 0;
score = add_points(score, 10);
score = add_points(score, 20);
print(score);
}
Run Project를 누르면 30이 나옵니다. main.cpp는 프로그램의 흐름을 정하고, score.cpp는 점수 계산을 맡습니다. 점수는 main의 지역변수입니다. 함수에 값을 전달하고 새 값을 돌려받으므로 공유 전역변수가 필요 없습니다.
처음에는 소스 파일과 같은 이름의 헤더를 짝으로 만드세요. 필요한 함수 선언은 헤더에, 함수 정의는 소스에 둡니다. 한 파일로 충분한 작은 함수마다 파일을 만들 필요는 없습니다.
한 파일로 동작 확인하기

예제 · example.cpp
int add_points(int score, int points)
{
return score + points;
}
void small_main()
{
int score = 0;
score = add_points(score, 10);
score = add_points(score, 20);
print(score);
}
연습 — 직접 확인하기
한 파일 연습에 5점을 더하는 호출을 추가해 35를 출력하세요. 다음으로 프로젝트의 main.cpp에도 같은 호출을 추가하세요. score.h와 score.cpp는 바꿀 필요가 있을까요?
연습 문제 코드 · exercise_starter.cpp
int add_points(int score, int points)
{
return score + points;
}
void small_main()
{
int score = 0;
score = add_points(score, 10);
score = add_points(score, 20);
print(score);
}
Hint
위에서 설명한 메뉴를 이용하세요. 아래 코드는 한 파일 연습의 답안입니다. 프로젝트에서는 해당 역할의 파일에 같은 변경을 적용하세요.
풀이 보기
int add_points(int score, int points)
{
return score + points;
}
void small_main()
{
int score = 0;
score = add_points(score, 10);
score = add_points(score, 20);
score = add_points(score, 5);
print(score);
}