מימוש החשבון
חלק מהיחידה תכנות מונחה עצמים במסלול ה-C של Coddy. שיעור 23 מתוך 61.
אתגר
קלעכשיו הגיע הזמן להחיות את חשבון הבנק שלך! כבר יצרת את הממשק הציבורי בקובץ account.h: עכשיו תממש את החלקים הפנימיים המוסתרים שגורמים לו לעבוד.
בהמשך לעבודה הקודמת שלך, תוסיף את קובץ המקור שמכיל את הגדרת המבנה הסודית ואת המימושים בפועל של הפונקציות. כאן מתרחשת באמת הכמסה: גוף המבנה קיים רק בקובץ .c, והוא בלתי נראה לחלוטין לכל מי שמשתמש בספרייה שלך.
תעבוד עם שלושה קבצים:
account.h: קובץ הכותרת הקיים שלך, עם הצהרת הטיפוס האטוםAccountואבות־טיפוס של הפונקציותcreate_accountו-destroy_account. השאר את מגני ההכללה שלך עםACCOUNT_H.account.c: כאן מתרחש הקסם. הגדר אתstruct Accountבפועל עם שני איברים מוסתרים:int id(מזהה החשבון) ו-double balance(מתחיל ב-0.0 בחשבונות חדשים). ממש את בנאי החשבון כך שיקצה זיכרון, יגדיר את המזהה מהפרמטר ויאתחל את היתרה לאפס. ממש את מפרק החשבון כך שישחרר כראוי את הזיכרון.main.c: בדוק את המימוש שלך על ידי יצירת חשבון ואימות שהוא פועל. מכיוון שאיברי המבנה מוסתרים, אינך יכול להציץ פנימה, אבל תוכל לוודא שמחזור החיים פועל כראוי.
תקבל קלט אחד: מזהה החשבון (מספר שלם) שיש לשייך לחשבון החדש.
בקובץ הראשי שלך, צור חשבון עם המזהה שסופק, הדפס הודעת אישור שמציגה את המזהה, ואז השמד את החשבון ואשר את הניקוי.
הדפס את הפלט בפורמט הזה:
Account 1001 created
Account destroyedכאשר 1001 מוחלף במזהה שהתקבל בפועל כקלט.
זכור: קובץ main.c שלך לא יכול לגשת ישירות אל account->id או אל account->balance. האיברים האלה מוסתרים לחלוטין בתוך account.c. בשלב זה, פשוט תשתמש במזהה מהקלט בהודעת הפלט שלך. בשיעורים הבאים תוסיף פונקציות 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_account() והדפיסו "Account destroyed"
return 0;
}כל השיעורים ביחידה תכנות מונחה עצמים
4כימוס
המושג של מצביעים אטומיםהגדרת מבנים אטומיםפונקציות Get ו-Setאימות ב-Settersסיכום: הקופסה הסודית2אובייקטים ומתודות
מבנים כאובייקטיםמצביע 'Self'נכונות constמצביע לעומת ערךמתודות עזרחזרה: מנהל נקודות5פרויקט: חשבון בנק פשוט
הגדרת הפרויקטמימוש החשבוןתרגלו בעצמכם: קומפיילר C אונליין