أشعر بإحباط شديد لعدم قدرتي علي فهم class, object في c++, ابحث كثيرا علي اليوتيوب لمحاولة فهمها لكنها صعبة جدا جدا جدا ، هل من طريقة تساعدني علي التغلب علي هذه المشكلة ، من خلال فيديو معين سهل او كتاب مهم يساعدني في ذلك ......
لا أستطيع فهم class, object in c++
الأمر أسهل مما يبدو عليه للوهلة الأولى، دعنا نتخلّص من التسميات الأجنبية الفاخرة ونستبدل Class بالصنف و Object بالعنصر.
الآن دعنا نتخلّص من قواعد الـ C++ الكتابيّة (Syntax) ودعنا نركّز على المنطق وشرح هاته المصطلحات.
فلنفرض أنّه لدينا مجموعة كتب وتحتوي عدّة مواصفات تهمّنا (Attributes/Properties) منها اسم الكتاب، عدد الصفحات، سنة النشر، رقم الطبعة، الكاتب ومجال الكتاب. قد نخزّن هذه المعلومات بالشكل التالي :
bookName = "Something"
bookPages = 150
bookYear = 2009
bookCopy = "3rd"
bookAuthor = "Jhon Doe"
bookGenre = "Fiction"
الآن، من الممكن تطبيق هذه الطريقة على كتاب، كتابين أو حتّى ثلاثة ولكن تخيّل حجم المتغيرات التي يجب أن تكتبها وما هو طول الكود الناتج عن مكتبة بها مئات الكتب!
هنا تأتي فكرة الـصنف أو ما يسمّى بالبرمجة كائنيّة التوجه وهي أنّنا نستطيع أن نعطي لعنصر ما (Object) مواصفات معيّنة (Attributes/Properties) بمجرد إسناده وتعريفه إلى صنف معيّن قمنا بتخصيص مواصفاته سابقاً.
وبالتشبيه بمثال الصناديق المتداول في شرح هذا المفهوم، اعتبر أنّ عنصر ما هو بمثابة صندوق كبير ويحتوي بداخله صناديق أصغر تحتوي بداخله معلومات مختلفة والتي هي المواصفات في هذا المثال وجميع الصناديق الكبيرة من هذا الصنف لها نفس الحجم والشكل ولكنّها تخزن بداخلها صناديق أصغر مختلفة القيم.
هذا يسهّل على المبرمج التعامل مع هذه البيانات إن كانت مجمّعة بصورة منظّمة يسهل الوصول إليها والتعامل معها.
الآن، إن فهمتَ هذا المبدأ هذا يعني أنّك مستعد للتعامل مع الأصناف في C++
اخترت لك المقطعين التاليين،
باللغة العربيّة:
باللغة الإنجليزيّة:
أتمنّى أنّ جميع النقاط كانت واضحة، هل هناك أيّ مفهوم لم تستوعبه بشكل كامل لكي أقوم بإعادة شرحه؟
ممتن جدا لك ولوقتك الثمين الذي استخدمته في الاجابة علي استفساري .
لكن ما لم افهمه حق واجد صعوبة فيه ، هي طريقة كتابة ال class وكيف اننا نضع ال private أولا ثم الpublic ولازم توضع ال int main بعدها لا قبلها ،
الامر بالنسبة لي اشبه بالعقدة ، لا اعرف لماذا اكتب هذه اولا وهذه اخرا وتلك في المنتصف،
الشئ الاخر ، لو انني لدي مثلا
صف به 20 طالب وارتدت تعديل بيانات الطالب رقم 7 علي سبيل المثال كيف اتوصل لذلك بهذه الطريقة ؟
العفو أخي، بالنسبة لكيفية كتابة تعريف الـ Class هي فقط قواعد وضعها مبرمجو اللغة ومع الممارسة يسهل عليكَ حفظها واستخدامها.
الشئ الاخر ، لو انني لدي مثلا
صف به 20 طالب وارتدت تعديل بيانات الطالب رقم 7 علي سبيل المثال كيف اتوصل لذلك بهذه الطريقة
لنفرض أنّ الصنف اسمه student والبيانات التي أردت تعديلها للطالب رقم سبعة هي علامته في إحدى المواد والتي هي في نهاية المطاف صفة (Property) ولتكن على سبيل المثال علامته في مادّة الرياضيات واسمها mathScore فيصبح لدينا التعبير الآتي:
student[7].mathScore = 75;
حيث أنّ 75 هي البيانات التي قمنا بإدخالها أو التعديل عليها.
التعليقات