Hesabın Oluşturulması
Coddy'nin C Journey'sinin Object Oriented Programming bölümünün bir parçası — ders 23 / 61.
Görev
KolayŞimdi Banka Hesabınızı hayata geçirme zamanı! account.h dosyasında genel arayüzü zaten oluşturdunuz; şimdi onu çalıştıran gizli iç yapıyı uygulayacaksınız.
Önceki çalışmanızın üzerine inşa ederek, gizli struct tanımını ve gerçek fonksiyon uygulamalarını içeren kaynak dosyasını ekleyeceksiniz. Kapsüllemenin (encapsulation) gerçekten gerçekleştiği yer burasıdır; struct gövdesi yalnızca .c dosyasında bulunur ve kütüphanenizi kullanan hiç kimse tarafından görülemez.
Üç dosya ile çalışacaksınız:
account.h: OpakAccounttürü bildirimi ilecreate_accountvedestroy_accountfonksiyon prototiplerini içeren mevcut başlık dosyanız.ACCOUNT_Hile include guard'larınızı koruyun.account.c: Sihrin gerçekleştiği yer burasıdır. İki gizli üyeye sahip gerçekstruct Accountyapısını tanımlayın:int id(hesap tanımlayıcı) vedouble balance(yeni hesaplar için 0.0'dan başlar). Bellek ayırmak, ID'yi parametreden ayarlamak ve bakiyeyi sıfıra sıfırlamak için constructor'ınızı (yapıcı) uygulayın. Belleği düzgün bir şekilde serbest bırakmak için destructor'ınızı (yıkıcı) uygulayın.main.c: Bir hesap oluşturarak ve çalıştığını onaylayarak uygulamanızı test edin. Struct üyeleri gizli olduğu için içine bakamazsınız, ancak yaşam döngüsünün doğru çalıştığını doğrulayabilirsiniz.
Bir girdi alacaksınız: yeni hesaba atanacak account ID (bir tam sayı).
Ana dosyanızda, sağlanan ID ile bir hesap oluşturun, ID'yi gösteren bir onay mesajı yazdırın, ardından hesabı yok edin ve temizliği onaylayın.
Çıktıyı şu formatta yazdırın:
Account 1001 created
Account destroyedBurada 1001, girdi olarak aldığınız gerçek ID ile değiştirilir.
Unutmayın: main.c dosyanız account->id veya account->balance değerlerine doğrudan erişemez; bu üyeler account.c içinde tamamen gizlidir. Şimdilik, çıktı mesajınız için sadece girdiden gelen ID'yi kullanacaksınız. Gelecek derslerde, gizli verileri düzgün bir şekilde almak için getter fonksiyonları ekleyeceksiniz.
Kendin dene
#include <stdio.h>
#include "account.h"
int main() {
int account_id;
// YAPILACAK: account_id değerini girdiden oku
scanf("%d", &account_id);
// YAPILACAK: create_account() kullanarak bir hesap oluşturun ve "Account <id> created" yazdırın
// YAPILACAK: destroy_account() kullanarak hesabı yok edin ve "Account destroyed" yazdırın
return 0;
}Object Oriented Programming bölümündeki tüm dersler
1Modüler Programlama Temelleri
Başlık DosyalarıInclude Guard'larKaynak DosyalarıStatik FonksiyonlarÖzet: Modüler Hesap Makinesi4Kapsülleme
Opaque Pointer KavramıOpaque Struct TanımlamaGetter ve Setter MetotlarıSetter Metotlarında DoğrulamaÖzet: Gizli Kutu2Nesneler ve Metotlar
Nesne Olarak Struct'lar'Self' İşaretçisiConst Doğruluğuİşaretçi vs DeğerYardımcı MetotlarÖzet: Point Manager5Proje: Basit Banka Hesabı
Proje KurulumuHesabın Oluşturulması3Nesne Yaşam Döngüsü
Constructor DeseniDestructor DeseniStack İlklendirmeDerin KopyalamaÖzet: String Wrapper6Kompozisyon Yoluyla Kalıtım
Struct Gömmeİlk Üye KuralıÜst Üyelere ErişimUpcastingÖzet: Şekil Hiyerarşisi