Menu
Coddy logo textTech

계좌 구현하기

Coddy C 여정의 객체 지향 프로그래밍 섹션에 포함된 레슨. 61개 중 23번째.

challenge icon

챌린지

쉬움

이제 Bank Account에 생명을 불어넣을 시간입니다! 이미 account.h에 공개 인터페이스를 만들었으니, 이제 작동하게 만드는 숨겨진 내부를 구현합니다.

이전 작업을 바탕으로 비공개 struct 정의와 실제 함수 구현을 포함하는 소스 파일을 추가합니다. 여기서 캡슐화가 진정으로 이루어집니다. 구조체 본문은 .c 파일에만 존재하며, 라이브러리를 사용하는 누구에게도 완전히 보이지 않습니다.

다음 세 파일을 사용합니다.

  • account.h: 불투명한 Account 타입 선언과 create_accountdestroy_account의 함수 프로토타입이 포함된 기존 헤더입니다. ACCOUNT_H를 사용한 include guard를 유지하세요.
  • account.c: 마법이 일어나는 곳입니다. 두 개의 숨겨진 멤버인 int id(계정 식별자)와 double balance(새 계정의 경우 0.0으로 시작)를 포함하는 실제 struct Account를 정의하세요. 메모리를 할당하고, 매개변수에서 ID를 설정하고, 잔액을 0으로 초기화하도록 생성자를 구현하세요. 메모리를 올바르게 해제하도록 소멸자를 구현하세요.
  • main.c: 계정을 생성하고 정상적으로 작동하는지 확인하여 구현을 테스트하세요. 구조체 멤버는 숨겨져 있으므로 내부를 들여다볼 수는 없지만, 수명 주기가 올바르게 작동하는지 확인할 수 있습니다.

새 계정에 할당할 account ID(정수) 하나를 입력으로 받습니다.

main 파일에서 제공된 ID로 계정을 생성하고, ID를 표시하는 확인 메시지를 출력한 다음 계정을 삭제하고 정리 작업을 확인하세요.

다음 형식으로 출력을 출력하세요.

Account 1001 created
Account destroyed

여기서 1001은 입력으로 받은 실제 ID로 바뀝니다.

기억하세요. main.c에서는 account->id 또는 account->balance에 직접 접근할 수 없습니다. 이러한 멤버는 account.c 내부에 완전히 숨겨져 있습니다. 지금은 입력에서 받은 ID를 출력 메시지에 사용하기만 합니다. 다음 수업에서는 숨겨진 데이터를 적절히 가져오기 위한 getter 함수를 추가합니다.

직접 해보기

#include <stdio.h>
#include "account.h"

int main() {
    int account_id;
    // TODO: 입력에서 account_id를 읽기
    scanf("%d", &account_id);

    // TODO: create_account()를 사용하여 계정을 생성하고 "Account <id> created"를 출력

    // TODO: destroy the account using destroy_account() and print "Account destroyed"

    return 0;
}

객체 지향 프로그래밍의 모든 레슨

직접 연습해 보세요: 온라인 C 컴파일러