Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

إعداد المشروع

جزء من قسم Object Oriented Programming في رحلة C على Coddy — الدرس 22 من 61.

challenge icon

التحدي

سهل

لنبدأ في بناء مكتبة حسابك البنكي! في هذه الخطوة الأولى، ستقوم بإنشاء الواجهة العامة — ملف الرأس (header file) الذي يحدد العمليات الموجودة دون الكشف عن أي تفاصيل تتعلق بالتنفيذ.

ستقوم بإنشاء ملفين لإرساء أساس المشروع:

  • account.h: ملف الرأس العام الخاص بك. هذا هو الملف الذي سيقوم مستخدمو مكتبتك بتضمينه. قم بالتصريح عن نوع Account مبهم (opaque) باستخدام تصريح نوع غير مكتمل — بدون جسم الـ struct، مجرد تصريح مسبق (forward declaration) يخبر المترجم بوجود هذا النوع. ثم قم بالتصريح عن النماذج الأولية للدوال (function prototypes) لكل من create_account (تأخذ عدداً صحيحاً لمعرف الحساب وتعيد مؤشراً من نوع Account) و destroy_account (تأخذ مؤشراً من نوع Account ولا تعيد شيئاً). لا تنسَ حواجز التضمين (include guards) باستخدام الرمز ACCOUNT_H.
  • main.c: ملف اختبار بسيط للتحقق من أن ملف الرأس الخاص بك يترجم بشكل صحيح. قم بتضمين ملف الرأس الخاص بك واطبع رسالة تؤكد أن الواجهة جاهزة. بما أننا لم نقم بتنفيذ الدوال بعد، فما عليك سوى طباعة رسالة تأكيد — التنفيذ الفعلي سيأتي في الدرس القادم.

الفكرة الجوهرية هنا هي أن ملف الرأس الخاص بك يكشف ماذا يمكن لوحدة الحساب (Account module) أن تفعل (إنشاء وتدمير الحسابات) دون إظهار كيفية تخزين البيانات داخلياً. أي شخص يقوم بتضمين account.h سيعرف بوجود نوع Account وما هي الدوال المتاحة، لكنه لن يتمكن من الوصول إلى أي حقول داخلية — لأنك لم تقم بتعريف أي منها في ملف الرأس!

يجب أن يخرج ملفك الرئيسي ما يلي:

Account interface ready

هذا يمهد الطريق لنظام الحساب البنكي الكامل الذي ستبنيه على مدار الدروس القليلة القادمة. ملف الرأس الذي تنشئه الآن سيتوسع ليشمل deposit و withdraw و get_balance مع تقدمك في المشروع.

جرّب بنفسك

#include <stdio.h>
#include "account.h"

int main() {
    // TODO: طباعة رسالة تؤكد أن الواجهة جاهزة
    // يجب أن تكون الرسالة: "Account interface ready"
    
    return 0;
}

جميع دروس Object Oriented Programming