إعداد المشروع
جزء من قسم البرمجة كائنية التوجه في رحلة C على Coddy. الدرس 22 من 61.
التحدي
سهللنبدأ ببناء مكتبة Bank Account الخاصة بك! في هذه الخطوة الأولى، ستنشئ الواجهة العامة: ملف الترويسة الذي يعرّف العمليات الموجودة دون الكشف عن أي تفاصيل تنفيذ.
ستنشئ ملفين لإعداد أساس المشروع:
account.h: ملف الترويسة العامة الخاص بك. هذا هو الملف الذي سيقوم مستخدمو مكتبتك بعملincludeله. عرّف نوعAccountمن نوعopaqueباستخدامincompletetypedeclaration: لا يوجد جسمstruct، بل مجردforwarddeclarationيخبر المصرّف بأن النوع موجود. ثم عرّف نماذج الدوال الأولية لـcreate_account(تأخذ قيمةintegerلمعرّف الحساب وتُرجعAccountpointer) وdestroy_account(تأخذAccountpointerوتُرجعnothing). لا تنسَ حواجزincludeباستخدام الرمزACCOUNT_H.main.c: ملف اختبار بسيط للتحقق من أن الترويسة تُصرَّف بشكل صحيح. قم بعملincludeلترويستك واطبع رسالة تؤكد أن الواجهة جاهزة. بما أننا لم ننفّذ الدوال بعد، اطبع مجرد رسالة تأكيد: سيأتي التنفيذ الفعلي في الدرس التالي.
الفكرة الأساسية هنا هي أن ترويستك تكشف ما يستطيع نموذج Account فعله (إنشاء الحسابات وتدميرها) من دون إظهار كيفية تخزينه للبيانات داخليًا. أي شخص يقوم بعمل include للملف account.h سيعرف أن نوع Account موجود وما الدوال المتاحة، لكنه لن يتمكن من الوصول إلى أي حقول داخلية، لأنك لم تعرّف أيًا منها في الترويسة!
يجب أن يُخرج ملفك الرئيسي:
Account interface readyيمهّد هذا الطريق لنظام Bank Account الكامل الذي ستبنيه خلال الدروس العديدة التالية. ستتوسع الترويسة التي تنشئها الآن لتتضمن deposit وwithdraw وget_balance مع تقدمك في المشروع.
جرّب بنفسك
#include <stdio.h>
#include "account.h"
int main() {
// TODO: اطبع رسالة تؤكد أن الواجهة جاهزة
// The message should be: "Account interface ready"
return 0;
}
جميع دروس البرمجة كائنية التوجه
1أساسيات البرمجة التركيبية
ملفات الترويسةحواجز التضمينملفات المصدرالدوال الساكنةمراجعة: آلة حاسبة تركيبية4التغليف (Encapsulation)
مفهوم الـ Opaque Pointersتعريف الـ Opaque Structsالـ Getters والـ Settersالتحقق من البيانات في الـ Settersملخص: الصندوق السري2الكائنات والأساليب
الـ Structs ككائناتمؤشر 'Self'صحة استخدام Constالمؤشر مقابل القيمةالأساليب المساعدةملخص: Point Manager5مشروع: حساب بنكي بسيط
إعداد المشروعتنفيذ الحساب3دورة حياة الكائن
نمط المنشئ (Constructor Pattern)نمط الهادم (Destructor Pattern)تهيئة الـ Stackالنسخ العميق (Deep Copy)مراجعة: String Wrapper6الوراثة عبر التركيب
تضمين الـ Structقاعدة العضو الأولالوصول إلى أعضاء الأبعملية الـ Upcastingمراجعة: هرمية الأشكال9مشروع: رسّام الأشكال
نظرة عامة على المشروعتنفيذ الدائرةتنفيذ المستطيلاستخدام تعدد الأشكالحاوية الأشكالتدرّب بنفسك: مترجم C عبر الإنترنت