Implementasi Akun
Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan C di Coddy. Pelajaran 23 dari 61.
Tantangan
MudahSekarang saatnya menghidupkan Rekening Bank-mu! Kamu sudah membuat antarmuka publik di account.h: sekarang kamu akan mengimplementasikan bagian internal tersembunyi yang membuatnya berfungsi.
Melanjutkan pekerjaanmu sebelumnya, kamu akan menambahkan file sumber yang berisi definisi struct rahasia dan implementasi fungsi yang sebenarnya. Di sinilah enkapsulasi benar-benar terjadi: isi struct hanya ada di file .c, sepenuhnya tidak terlihat oleh siapa pun yang menggunakan library-mu.
Kamu akan bekerja dengan tiga file:
account.h: Header yang sudah ada, berisi deklarasi tipeAccountopak dan prototipe fungsi untukcreate_accountdandestroy_account. Pertahankan include guard denganACCOUNT_H.account.c: Di sinilah keajaiban terjadi. Definisikanstruct Accountyang sebenarnya dengan dua anggota tersembunyi:int id(pengenal rekening) dandouble balance(dimulai dari 0.0 untuk rekening baru). Implementasikan constructor untuk mengalokasikan memori, menetapkan ID dari parameter, dan menginisialisasi saldo menjadi nol. Implementasikan destructor untuk membebaskan memori dengan benar.main.c: Uji implementasimu dengan membuat rekening dan memastikan semuanya berfungsi. Karena anggota struct tersembunyi, kamu tidak bisa melihat isinya, tetapi kamu bisa memastikan siklus hidupnya berfungsi dengan benar.
Kamu akan menerima satu input: ID rekening (bilangan bulat) untuk ditetapkan ke rekening baru.
Di file main-mu, buat rekening dengan ID yang diberikan, cetak pesan konfirmasi yang menampilkan ID tersebut, lalu hancurkan rekening dan konfirmasikan bahwa pembersihan telah dilakukan.
Cetak output dengan format berikut:
Account 1001 created
Account destroyedGanti 1001 dengan ID sebenarnya yang kamu terima sebagai input.
Ingat: main.c-mu tidak dapat mengakses account->id atau account->balance secara langsung. Anggota tersebut sepenuhnya tersembunyi di dalam account.c. Untuk saat ini, kamu hanya akan menggunakan ID dari input untuk pesan output-mu. Dalam pelajaran mendatang, kamu akan menambahkan fungsi getter untuk mengambil data tersembunyi dengan benar.
Coba sendiri
#include <stdio.h>
#include "account.h"
int main() {
int account_id;
// TODO: baca account_id dari input
scanf("%d", &account_id);
// TODO: buat akun menggunakan create_account() dan cetak "Account <id> created"
// TODO: hapus akun menggunakan destroy_account() dan cetak "Account destroyed"
return 0;
}Semua pelajaran di Pemrograman Berorientasi Objek
1Dasar-Dasar Pemrograman Modular
file headerProteksi includefile sumberFungsi StatisRingkasan: Kalkulator Modular4Enkapsulasi
Konsep Opaque PointerMendefinisikan Opaque StructGetter dan SetterValidasi pada SetterUlasan: Kotak Rahasia2Object dan method
Struct sebagai objectPointer 'self'Konsistensi constPointer vs nilaiMethod pembantuRangkuman: Pengelola Point5Proyek: Akun Bank Sederhana
Penyiapan ProyekImplementasi Akun3Siklus Hidup object
Pola KonstruktorPola DestruktorInisialisasi StackSalinan MendalamRangkuman: Pembungkus string6Pewarisan melalui Komposisi
Penyematan StructAturan Anggota PertamaMengakses Anggota ParentUpcastingRekap: Hierarki Bentuk9Proyek: Penggambar Bentuk
Ringkasan ProyekImplementasi LingkaranImplementasi Persegi PanjangPenggunaan PolimorfismeWadah BentukLatihan sendiri: Compiler C online