프로젝트 설정
Coddy C 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨. 61개 중 22번째.
챌린지
쉬움Bank Account 라이브러리 구축을 시작해 봅시다! 첫 단계에서는 구현 세부 정보를 공개하지 않고 어떤 작업이 가능한지 정의하는 public interface, 즉 헤더 파일을 작성합니다.
프로젝트의 기반을 설정하기 위해 두 개의 파일을 만듭니다.
account.h: public header file입니다. 라이브러리 사용자가 include할 파일입니다. incomplete type declaration을 사용하여 opaqueAccounttype을 Declare합니다. struct body는 작성하지 않고, type이 존재한다는 것을 컴파일러에 알리는 forward declaration만 작성합니다. 그런 다음create_account(account ID를 위한 integer를 Takes하고 Account pointer를 Returns)와destroy_account(Account pointer를 Takes하고 nothing을 Returns)의 function prototypes를 declare합니다.ACCOUNT_Hsymbol을 using한 include guards도 잊지 마세요.main.c: header가 올바르게 컴파일되는지 확인하기 위한 간단한 test file입니다. header를 include하고 interface가 ready임을 confirming하는 message를 Print합니다. 아직 function을 구현하지 않았으므로 confirmation message만 Print하면 됩니다. 실제 구현은 다음 lesson에서 진행합니다.
여기서 핵심적인 insight는 header가 Account module이 무엇을 할 수 있는지 (account를 create하고 destroy하는 것)는 보여 주지만, 내부적으로 data를 어떻게 저장하는지는 보여 주지 않는다는 점입니다. account.h를 include하는 누구나 Account type이 존재하고 어떤 function을 사용할 수 있는지 알 수 있지만, header에 internal field를 하나도 정의하지 않았기 때문에 해당 field에 접근할 수는 없습니다!
main file은 다음을 output해야 합니다.
Account interface ready이제부터 이어질 여러 lesson에서 구축할 완전한 Bank Account system을 위한 기반이 마련되었습니다. 지금 작성한 header는 프로젝트를 진행하면서 deposit, withdraw, get_balance를 포함하도록 확장될 것입니다.
직접 해보기
#include <stdio.h>
#include "account.h"
int main() {
// TODO: 인터페이스가 준비되었음을 확인하는 메시지를 출력하세요
// The message should be: "Account interface ready"
return 0;
}
객체 지향 프로그래밍의 모든 레슨
직접 연습해 보세요: 온라인 C 컴파일러