الغرض الرئيسي من برمجة C++ هو تقديم مفهوم اتجاه الكائن إلى لغة البرمجة C.
البرمجة الشيئية هي نموذج يوفر العديد من المفاهيم مثل الميراث، ربط البيانات، تعدد الأشكال الخ.
يُعرف نموذج البرمجة الذي يتم فيه تمثيل كل شيء ككائن باسم لغة البرمجة الموجهة للكائنات حقًا. حديث قصير تعتبر أول لغة برمجة موجهة للكائنات حقًا.
OOPs (نظام البرمجة الشيئية)
هدف تعني كيانًا كلاميًا حقيقيًا مثل القلم والكرسي والطاولة وما إلى ذلك. البرمجة الشيئية هي منهجية أو نموذج لتصميم برنامج باستخدام الفئات والكائنات. إنه يبسط تطوير البرمجيات وصيانتها من خلال توفير بعض المفاهيم:
سلسلة جافا التسلسلية
- هدف
- فصل
- ميراث
- تعدد الأشكال
- التجريد
- التغليف
هدف
يُعرف أي كيان له حالة وسلوك بالكائن. على سبيل المثال: الكرسي، القلم، الطاولة، لوحة المفاتيح، الدراجة وما إلى ذلك. يمكن أن تكون مادية ومنطقية.
فصل
جمع الكائنات يسمى الطبقة. إنه كيان منطقي.
تعتبر الفئة في لغة C++ العنصر الأساسي الذي يؤدي إلى البرمجة كائنية التوجه. يجب إنشاء مثيل فئة للوصول إلى أعضاء البيانات ووظائف الأعضاء الخاصة بنوع البيانات المعرفة من قبل المستخدم واستخدامها. تعمل فئة الكائن كمخطط له. خذ فئة السيارات كمثال. حتى لو تم استخدام أسماء وعلامات تجارية مختلفة لسيارات مختلفة، فستكون جميعها لديها بعض الخصائص المشتركة، مثل العجلات الأربع، والحد الأقصى للسرعة، ومدى الأميال، وما إلى ذلك. وفي هذه الحالة، يتم تمثيل فئة السيارة بواسطة العجلات وقيود السرعة والمسافة المقطوعة.
ميراث
عندما يكتسب كائن واحد جميع خصائص وسلوكيات الكائن الأصلي أي: يعرف بالميراث. ويوفر إمكانية إعادة استخدام التعليمات البرمجية. يتم استخدامه لتحقيق تعدد الأشكال في وقت التشغيل.
- الفئة الفرعية - تشير الفئة الفرعية أو الفئة المشتقة إلى فئة تتلقى خصائص من فئة أخرى.
- الفئة الفائقة - يشير مصطلح 'الفئة الأساسية' أو 'الفئة الفائقة' إلى الفئة التي ترث منها الفئة الفرعية خصائصها.
- قابلية إعادة الاستخدام - نتيجة لذلك، عندما نرغب في إنشاء فئة جديدة، ولكن فئة موجودة تحتوي بالفعل على بعض التعليمات البرمجية التي نحتاجها، يمكننا إنشاء فئة جديدة من الفئة القديمة بفضل الميراث. وهذا يسمح لنا بالاستفادة من مجالات وأساليب الفصل الموجود مسبقًا.
تعدد الأشكال
متى يتم تنفيذ مهمة واحدة بطرق مختلفة أي ما يعرف بتعدد الأشكال. على سبيل المثال: لإقناع العميل بشكل مختلف، لرسم شيء ما على سبيل المثال. الشكل أو المستطيل الخ
قد تتسبب المواقف المختلفة في تصرف العملية بشكل مختلف. يحدد نوع البيانات المستخدمة في العملية السلوك.
التجريد
إخفاء التفاصيل الداخلية وإظهار الوظائف يُعرف بالتجريد. تجريد البيانات هو عملية تعريض العالم الخارجي فقط للمعلومات الضرورية للغاية مع إخفاء معلومات التنفيذ أو الخلفية. على سبيل المثال: مكالمة هاتفية، لا نعرف المعالجة الداخلية.
مهم
في لغة C++، نستخدم فئة مجردة وواجهة لتحقيق التجريد.
التغليف
يُعرف ربط (أو تغليف) التعليمات البرمجية والبيانات معًا في وحدة واحدة بالتغليف. على سبيل المثال: الكبسولة، وهي مغلفة بأدوية مختلفة.
يُفهم التغليف عادةً على أنه تجميع أجزاء المعلومات والبيانات ذات الصلة في كيان واحد. التغليف هو عملية ربط البيانات والوظائف التي تعمل معها في البرمجة الموجهة للكائنات. ألق نظرة على المثال العملي للتغليف: في الشركة، هناك أقسام مختلفة، بما في ذلك قسم المبيعات، والقسم المالي، وقسم الحسابات. يتم التعامل مع جميع المعاملات المالية من قبل القطاع المالي، الذي يحتفظ أيضًا بسجلات لجميع البيانات المالية. وعلى نفس المنوال، يتولى قسم المبيعات مسؤولية جميع المهام المتعلقة بالمبيعات ويحتفظ بسجل لكل عملية بيع. الآن، يمكن أن يحدث سيناريو عندما يطلب المسؤول المالي، لسبب ما، جميع المعلومات المتعلقة بالمبيعات لشهر معين. تحت المصطلح الشامل 'قسم المبيعات'، يتم تجميع كافة الموظفين الذين يمكنهم التأثير على بيانات قسم المبيعات معًا. يعد تجريد البيانات أو إخفائها أحد الآثار الجانبية الأخرى للتغليف. بنفس الطريقة التي يخفي بها التغليف البيانات. في المثال المذكور أعلاه، لا يمكن لأي منطقة أخرى الوصول إلى أي من البيانات من أي قسم من الأقسام، مثل المبيعات أو المالية أو الحسابات.
الربط الديناميكي - في الربط الديناميكي، يتم اتخاذ قرار في وقت التشغيل فيما يتعلق بالتعليمات البرمجية التي سيتم تشغيلها استجابةً لاستدعاء دالة. ولهذا السبب، يدعم C++ الوظائف الافتراضية.
الاستفادة من OOPs على لغة البرمجة الموجهة نحو الإجراءات
- تعمل OOPs على تسهيل التطوير والصيانة، حيث أنه كما هو الحال في لغة البرمجة الموجهة نحو الإجراءات، ليس من السهل إدارتها إذا زاد حجم التعليمات البرمجية مع نمو حجم المشروع.
- توفر OOPs إخفاء البيانات بينما في لغة البرمجة الموجهة للإجراءات يمكن الوصول إلى البيانات العالمية من أي مكان.
- توفر OOPs القدرة على محاكاة أحداث العالم الحقيقي بشكل أكثر فعالية. يمكننا تقديم حل لمشكلة الكلمة الحقيقية إذا كنا نستخدم لغة البرمجة كائنية التوجه.
لماذا نحتاج إلى عفوا في C++؟
كانت هناك عيوب مختلفة للطرق المبكرة للبرمجة، بالإضافة إلى الأداء الضعيف. لم يتمكن هذا النهج من معالجة مشكلات العالم الحقيقي بشكل فعال لأنه، على غرار البرمجة ذات التوجه الإجرائي، لا يمكنك إعادة استخدام الكود داخل البرنامج مرة أخرى، وكانت هناك صعوبة في الوصول إلى البيانات العالمية، وما إلى ذلك.
مع استخدام الفئات والكائنات، تجعل البرمجة الشيئية صيانة التعليمات البرمجية أمرًا بسيطًا. نظرًا لأن الوراثة تسمح بإعادة استخدام التعليمات البرمجية، فإن البرنامج أبسط لأنك لن تضطر إلى كتابة نفس التعليمات البرمجية بشكل متكرر. يتم توفير إخفاء البيانات أيضًا من خلال أفكار مثل التغليف والتجريد.
لماذا يعد C++ Oop جزئيًا؟
كانت الميزات الموجهة للكائنات في لغة C هي الدافع الأساسي وراء بناء لغة C++.
قيود الخدمات المصرفية الإلكترونية
يتم تصنيف لغة البرمجة C++ على أنها لغة برمجة كائنية التوجه جزئيًا على الرغم من أنها تدعم مفاهيم OOP، بما في ذلك الفئات والكائنات والميراث والتغليف والتجريد وتعدد الأشكال.
1) يجب أن تكون الوظيفة الرئيسية دائمًا خارج الفصل في C++ وهي مطلوبة. هذا يعني أننا قد نستغني عن الفئات والكائنات ويكون لدينا وظيفة رئيسية واحدة في التطبيق.
يتم التعبير عنه ككائن في هذه الحالة، وهي المرة الأولى التي يتم فيها انتهاك Pure OOP.
2) المتغيرات العامة هي إحدى ميزات لغة البرمجة C++ التي يمكن الوصول إليها بواسطة أي كائن آخر داخل البرنامج ويتم تعريفها خارجه. التغليف مكسور هنا. على الرغم من أن لغة C++ تشجع تغليف الفئات والكائنات، إلا أنها تتجاهلها بالنسبة للمتغيرات العامة.
الحمولة الزائدة
يحتوي تعدد الأشكال أيضًا على مجموعة فرعية تُعرف بالتحميل الزائد. يقال إن عامل تشغيل أو وظيفة حالية مثقلة عندما تضطر إلى العمل على نوع بيانات جديد.
خاتمة
ستكون قد اكتسبت فهمًا للحاجة إلى البرمجة الشيئية، وما هي OOPs C++، وأساسيات OOPs، مثل تعدد الأشكال، والميراث، والتغليف، وما إلى ذلك، بعد قراءة هذه الدورة التدريبية حول مفاهيم OOPS في C++. إلى جانب حالات تعدد الأشكال والوراثة، تعلمت أيضًا فوائد OOPs لـ C++.