프로젝트 설정
Coddy C 여정의 Object Oriented Programming 섹션에 포함된 레슨 — 61개 중 22번째.
챌린지
쉬움은행 계좌(Bank Account) 라이브러리 구축을 시작해 봅시다! 첫 번째 단계에서는 구현 세부 사항을 공개하지 않고 어떤 연산이 존재하는지 정의하는 헤더 파일인 공개 인터페이스를 만들 것입니다.
프로젝트의 기초를 설정하기 위해 두 개의 파일을 생성합니다:
account.h: 공개 헤더 파일입니다. 라이브러리 사용자들이 포함하게 될 파일입니다. 불완전한 타입 선언(incomplete type declaration)을 사용하여 불투명한Account타입을 선언하세요. 구조체 본문 없이 컴파일러에게 해당 타입이 존재한다는 것만 알리는 전방 선언(forward declaration)을 사용합니다. 그런 다음create_account(계좌 ID를 위한 정수를 인자로 받아 Account 포인터를 반환)와destroy_account(Account 포인터를 인자로 받아 아무것도 반환하지 않음)의 함수 프로토타입을 선언하세요.ACCOUNT_H심볼을 사용한 include guard를 잊지 마세요.main.c: 헤더가 올바르게 컴파일되는지 확인하기 위한 간단한 테스트 파일입니다. 헤더를 포함하고 인터페이스가 준비되었음을 확인하는 메시지를 출력하세요. 아직 함수를 구현하지 않았으므로 확인 메시지만 출력하면 됩니다. 실제 구현은 다음 레슨에서 진행됩니다.
여기서 핵심적인 통찰은 헤더가 데이터가 내부적으로 어떻게 저장되는지 보여주지 않고 Account 모듈이 무엇을 할 수 있는지(계좌 생성 및 삭제)만 드러낸다는 점입니다. account.h를 포함하는 사람은 누구나 Account 타입이 존재하고 어떤 함수들을 사용할 수 있는지 알게 되지만, 헤더에 정의하지 않았기 때문에 내부 필드에는 접근할 수 없습니다!
main 파일은 다음을 출력해야 합니다:
Account interface ready이것은 다음 몇 레슨에 걸쳐 구축할 전체 은행 계좌 시스템을 위한 무대를 마련합니다. 지금 만드는 헤더는 프로젝트가 진행됨에 따라 deposit, withdraw, get_balance를 포함하도록 확장될 것입니다.
직접 해보기
#include <stdio.h>
#include "account.h"
int main() {
// TODO: 인터페이스가 준비되었음을 확인하는 메시지 출력
// 메시지는 다음과 같아야 합니다: "Account interface ready"
return 0;
}