freeCodeCamp/guide/arabic/cplusplus/object-oriented-programming/index.md

5.7 KiB

title localeTitle
Object Oriented Programming using C++ البرمجة الشيئية باستخدام C ++

البرمجة الشيئية باستخدام C ++

تهدف البرمجة الموجهة للكائنات ، OOP باختصار ، إلى تنفيذ كيانات العالم الحقيقي مثل الميراث والإخفاء وتعدد الأشكال في البرمجة. الهدف الرئيسي من OOP هو ربط البيانات والوظائف التي تعمل عليها بحيث لا يمكن لأي جزء آخر من التعليمات البرمجية الوصول إلى هذه البيانات باستثناء تلك الوظيفة.

دعونا نتعرف على الخصائص المختلفة للغة البرمجة الشيئية المنحى:

موضوع:

الكائنات هي كيانات وقت التشغيل الأساسية في نظام موجه للكائنات ، والكائنات هي مثيلات للفئة يتم تعريف هذه أنواع البيانات المعرفة من قبل المستخدم.

`class person { char name[20]; int id; public: void getdetails(){} };

int main() { person p1; //p1 is an object } `

تشغل الكائنات مساحة في الذاكرة ويكون لها عنوان مرتبط مثل سجل في الباسكال أو البنية أو الاتحاد في C.

عندما يتم تنفيذ البرنامج تتفاعل الكائنات عن طريق إرسال الرسائل إلى بعضها البعض.

يحتوي كل كائن على بيانات وتعليمة برمجية لمعالجة البيانات. يمكن أن تتفاعل الكائنات دون الحاجة إلى معرفة تفاصيل كل بيانات أو رموز بعضها البعض. يكفي معرفة نوع الرسالة المقبولة ونوع الاستجابة التي يتم إرجاعها بواسطة الكائنات.

صف دراسي:

الصف هو مخطط للبيانات والوظائف أو الطرق. الطبقة لا تأخذ أي مساحة.

class class_name { private: //data members and member functions declarations public: //data members and member functions declarations protected: //data members and member functions declarations };

Class هو نوع بيانات محدد بواسطة المستخدم مثل بنيات ونقابات في C.

متغيرات الطبقة الافتراضية تكون خاصة ولكن في حالة الهيكل تكون عامة. في المثال أعلاه الشخص هو فئة.

التغليف وتجريد البيانات:

يُعرف التفاف (دمج) البيانات والوظائف في وحدة واحدة بالتغليف. لا يمكن الوصول إلى البيانات إلى العالم الخارجي ويمكن فقط للوظائف التي يتم الالتفاف عليها في الفصل الوصول إليها. ويسمى هذا العزل من البيانات من الوصول المباشر من قبل البرنامج إخفاء البيانات أو إخفاء المعلومات.

يشير استخراج البيانات إلى توفير المعلومات المطلوبة فقط للعالم الخارجي وإخفاء تفاصيل التنفيذ. على سبيل المثال ، ضع في الاعتبار مجمع فئة مع وظائف عامة مثل getReal () و getImag (). قد ننفذ الفصل كمصفوفة بحجم 2 أو كمتغيرين. ميزة التجريدات هي أنه يمكننا تغيير التنفيذ في أي مرحلة ، ولن يتأثر مستخدمو الفئة المعقدة لأن واجهة أسلوبنا تبقى كما هي. لو كان تطبيقنا عامًا ، لما كنا قد تمكنا من تغييره.

ميراث:

الوراثة هي العملية التي بواسطتها تحصل الكائنات من فئة واحدة على خصائص كائنات من فئة أخرى. وهو يدعم مفهوم التصنيف الهرمي. يوفر الميراث reusability. هذا يعني أنه يمكننا إضافة ميزات إضافية لفئة موجودة دون تعديلها.

تعدد الأشكال:

تعدد الأشكال يعني القدرة على اتخاذ أكثر من شكل واحد. قد تعرض العملية سلوكيات مختلفة في حالات مختلفة. يعتمد السلوك على أنواع البيانات المستخدمة في العملية.

يدعم C ++ التحميل الزائد على المشغل والعبء الزائد للوظيفة. التحميل الزائد على المشغل هو عملية جعل المشغل يعرض سلوكيات مختلفة في حالات مختلفة. يستخدم التحميل الزائد للوظيفة اسم دالة مفرد لأداء أنواع مختلفة من المهام. يستخدم تعدد الأشكال على نطاق واسع في تنفيذ الميراث.

الربط الديناميكي:

في الربط الديناميكي ، يتم تحديد الكود المطلوب تنفيذه استجابة لمكالمة الوظيفة في وقت التشغيل. لدى C ++ وظائف ظاهرية لدعم هذا.

تمرير الرسالة:

تتواصل الكائنات مع بعضها البعض عن طريق إرسال وتلقي المعلومات لبعضها البعض. رسالة لكائن ما هي طلب لتنفيذ إجراء وبالتالي ستقوم باستدعاء وظيفة في كائن المتلقي الذي يقوم بإنشاء النتائج المطلوبة. ينطوي تمرير الرسالة على تحديد اسم الكائن واسم الدالة والمعلومات التي سيتم إرسالها.