Hesabın Oluşturulması
Coddy'nin C Journey'sinin Nesne Yönelimli Programlama bölümünün bir parçası. Ders 23 / 61.
Görev
KolayŞimdi Banka Hesabınızı hayata geçirmenin zamanı geldi! account.h içinde genel arayüzü zaten oluşturdunuz: şimdi onu çalıştıran gizli iç işleyişi uygulayacaksınız.
Önceki çalışmalarınızın üzerine inşa ederek, gizli struct tanımını ve gerçek işlev uygulamalarını içeren kaynak dosyasını ekleyeceksiniz. Kapsülleme tam olarak burada gerçekleşir: struct gövdesi yalnızca .c dosyasında bulunur ve kitaplığınızı kullanan herkes için tamamen görünmezdir.
Üç dosyayla çalışacaksınız:
account.h: OpakAccounttürü bildiriminizi vecreate_accountiledestroy_accountiçin işlev prototiplerini içeren mevcut başlığınız. Include guard'larınızıACCOUNT_Hile koruyun.account.c: Sihir burada gerçekleşir. İki gizli üyeye sahip gerçekstruct Accountyapısını tanımlayın:int id(hesap tanımlayıcısı) vedouble balance(yeni hesaplar için 0.0'dan başlayan bakiye). Bellek ayırmak, parametreden ID'yi ayarlamak ve bakiyeyi sıfıra başlatmak üzere yapıcınızı uygulayın. Belleği düzgün şekilde serbest bırakmak üzere yıkıcınızı uygulayın.main.c: Bir hesap oluşturarak ve çalıştığını doğrulayarak uygulamanızı test edin. Struct üyeleri gizli olduğundan içeriye göz atamazsınız; ancak yaşam döngüsünün doğru şekilde çalıştığını doğrulayabilirsiniz.
Bir girdi alacaksınız: yeni hesaba atanacak account ID (bir tamsayı).
main 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 destroyed1001 değerinin, girdi olarak aldığınız gerçek ID ile değiştirileceğini unutmayın.
Unutmayın: main.c dosyanız account->id veya account->balance öğelerine doğrudan erişemez. Bu üyeler tamamen account.c içinde gizlidir. Şimdilik çıktı mesajınızda yalnızca girdiden gelen ID'yi kullanacaksınız. Gelecek derslerde gizli verileri düzgün şekilde almak için getter işlevleri ekleyeceksiniz.
Kendin dene
#include <stdio.h>
#include "account.h"
int main() {
int account_id;
// TODO: account_id'yi girdiden oku
scanf("%d", &account_id);
// TODO: create_account() kullanarak bir hesap oluştur ve "Account <id> created" yazdır
// TODO: destroy the account using destroy_account() and print "Account destroyed"
return 0;
}Nesne Yönelimli Programlama 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şisiKendi başına pratik yap: Online C derleyicisi