صناع

شرح oop في لغة c++ لطلبة حاسبات ومعلومات

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

أساسيات البرمجة في C++:

1.  (Objects):

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

2. التقسيم (Encapsulation):

   تعني إحاطة البيانات والسلوك في كائن واحد. يتم ذلك بواسطة استخدام فئات (Classes) في C++. على سبيل المثال، يمكن أن تحتوي فئة كتاب على بيانات مثل العنوان والمؤلف والسعر، بالإضافة إلى وظائف للقراءة والكتابة لهذه البيانات.

3. التوريث (Inheritance):

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

4. التعددية (Polymorphism):

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

هناك بعض النقاط الأساسية الاخري التي يجب علينا ان نقوم بالحدث عنها و شرحها.

Lec1

  1. C++ Structures: في C++، تُستخدم الهياكل (Structures) لتعريف مجموعة من المتغيرات التي يتم تجميعها تحت اسم واحد. تسمح الهياكل بتنظيم البيانات بطريقة منطقية وتسهل الوصول إليها وتعديلها. على سبيل المثال، يمكن استخدام الهيكل لتمثيل بيانات الطالب في نظام مدرسي، حيث يمكن أن تتضمن الهيكل معلومات مثل الاسم، العمر، والمعدل الدراسي. على الرغم من أن الهياكل تشبه الفئات في بعض الجوانب، إلا أنها تفتقر إلى الميزات الأخرى للبرمجة الشيئية مثل التوريث والتعددية.
  2. في C++، يمكن دمج الهياكل (Structures) مع الوظائف (Functions) لإنشاء برامج تعتمد على البيانات والعمليات المتعلقة بها. يمكن تعريف وظائف داخل الهياكل أو خارجها، ويمكن استخدامها لتنفيذ العمليات المختلفة على البيانات الموجودة داخل الهيكل.
  3. في C++، يمكن استخدام المؤشرات (Pointers) للإشارة إلى الهياكل (Structures)، وهذا يسمح بالوصول إلى بيانات الهيكل وتعديلها بشكل مباشر. عند استخدام المؤشرات مع الهياكل، يمكن القيام بعمليات مثل تخصيص الذاكرة ديناميكياً لهيكل، وتمرير الهياكل كمعاملات للوظائف، وإنشاء قوائم متسلسلة من الهياكل.
  4. في C++، تُستخدم التعدادات (Enumerations) لتعريف مجموعة من الثوابت التي يمكن أن تأخذ قيمًا معينة محددة. تسمح التعدادات بتحديد مجموعة محددة من القيم التي يمكن أن تأخذها متغيرات معينة، وهذا يجعل الشفرة أكثر وضوحًا وسهولة في القراءة والفهم.

Lec2

1. Introduction to Object-Oriented Programming (OOP):

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

2. Procedural vs OOP:

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

3. Principles of OOP (encapsulation, inheritance, polymorphism, and abstraction):

  •  Encapsulation (التغليف): يعني تجميع البيانات والوظائف المتعلقة بالكائن داخل وحدة واحدة وإخفائها عن العالم الخارجي. يسمح هذا بحماية البيانات من التلاعب غير المرغوب فيه وتوفير واجهة موحدة للتفاعل مع الكائن.
  • Inheritance (التوريث): يسمح بإنشاء فئة جديدة باستخدام السمات والسلوك من فئة أخرى. هذا يسمح بإعادة استخدام الشيفرة وتنظيمها بشكل أفضل.
  • Polymorphism (التعددية): يسمح بمعالجة الكائنات بشكل عام دون الحاجة إلى معرفة نوع الكائن بالتحديد. يمكن تحقيق ذلك من خلال الدوال الافتراضية والدوال النقيّة الافتراضية.
  • Abstraction (التجريد): يعني تخفيف التفاصيل الداخلية للكائن وتقديم واجهة بسيطة للتفاعل معه. يسمح التجريد بتبسيط الاستخدام وتقليل الاعتماد على التفاصيل الداخلية للكائن.

Lec3

1. Defining classes, creating objects, accessing class members:

  • تعريف الفئات (Defining classes): في C++، يتم تعريف الفئات باستخدام الكلمة المفتاحية `class` متبوعة باسم الفئة والسمات والوظائف التي تحتويها.
  • إنشاء الكائنات (Creating objects): بعد تعريف الفئة، يمكن إنشاء كائن منها باستخدام اسم الفئة متبوعًا بإسم المتغير وعلامة التعيين.
  • الوصول إلى أعضاء الفئة (Accessing class members): يمكن الوصول إلى السمات والوظائف في الفئة باستخدام عملية النقطة (`.`) بعد اسم الكائن.

2 - Constructors, destructors, and access specifiers:

  • المباني (Constructors): هي وظائف خاصة تُستخدم لتهيئة الكائنات عند إنشائها. يتم تعريف المباني باسم الفئة ولا يُرجعون أي قيمة.
  • المدمرين (Destructors): هي وظائف خاصة تُستخدم لتنظيف الكائنات قبل إتلافها. يتم تعريف المدمرين بقبضة موجهة `~` تليها اسم الفئة ولا يُرجعون أي قيمة.
  • مواصفات الوصول (Access specifiers): تُستخدم لتحديد مدى الوصول إلى أعضاء الفئة. تشمل الثلاث مواصفات الوصول الرئيسية هي `public`, `private`, و `protected`. `public` تسمح بالوصول من أي مكان، `private` تقيد الوصول إلى داخل الفئة فقط، و `protected` تسمح بالوصول من داخل الفئة والفئات المشتقة.

Lec4&5

1. Objects and Functions:

  • (Objects) هي مثيلات للفئات (Classes) في C++. تستخدم الكائنات لتخزين البيانات وتنفيذ الوظائف المعرفة داخل الفئة.
  • الوظائف (Functions) في الفئات تُعرف بنفس الطريقة التي تُعرف بها الوظائف خارج الفئات، لكن يمكنها الوصول إلى البيانات الخاصة بالكائنات التي تنتمي إليها.

2. C++ Memory Management: new and delete:

  • `new` يُستخدم لتخصيص مساحة في الذاكرة لكائن معين من الفئة.
  • `delete` يُستخدم لإلغاء تخصيص الذاكرة التي تم تخصيصها باستخدام `new` عندما لا تعدل الكائن ذو الذاكرة المخصصة.

3. C++ Static Data Members:

  • السمات الثابتة (Static Data Members) هي متغيرات تشترك بين جميع الكائنات من نفس الفئة. تتم إنشاؤها باستخدام الكلمة الرئيسية `static` وتُعرف وتُبادل في مكان خارج الكائن.

4. Static Member Function in C++:

  • الوظائف الثابتة (Static Member Functions) تعمل بنفس طريقة السمات الثابتة، وهي تشترك بين جميع الكائنات من نفس الفئة. تستخدم الكلمة الرئيسية `static` في تعريفها.

5. ‘this’ pointer in C++:

  • الإشارة 'this' في C++ تُستخدم للإشارة إلى الكائن الحالي الذي يتم تنفيذ الوظيفة عليه.

6. Local Classes in C++:

  •  الفئات المحلية (Local Classes) هي فئات تُعرف داخل الوظائف أو المجالات، ولا يمكن الوصول إليها من خارج الوظيفة أو المجال. تُستخدم عادةً لتنظيم الشفرة وتقليل نطاق الرؤية للفئة.

فيديو شرح أساسيات البرمجة

يمكنك ايضا ان تقوم بمشاهدة فيديو شرح جميع ما قمنا بشرحه بكل سهولة من خلال الضغط هنا


شاركنا رأيك

لن يتم نشر بريدك

.