المشاركات

عرض الرسائل ذات التصنيف الفئات والكائنات في سي بلس بلس

ملخص الفئات والكائنات في ++C

صورة
الفئة هي توصيف لمجوعة من الكائنات . والكائن هو وحدة تضم بيانات معينة والدوال التي تؤثر فيها . وعند توصيف الفئة , يمكن تحديد أي عنصر فيها , سواء بيانات أو دوال . بحيث يكون خاصا أو عاما , مما يحد طبيعة التعامل معه , إما مقصور علي الكائن فقط , أم كافة الدوال . والدالة المنتمية هي دالة تمثل عنصرا في فئة , وهي الوحيدة التي تتعامل مع بياناتها المعرفة تعريفا خاصا فيها . ودوال الابتداء "البادئات " هي دوال منتمية , تستثار تلقائيا مع إنشاء الكائن , وتحمل اسم الفئة . وليس للبادئات قيمة معادة , ولكنها قد تحمل معاملات , وغالبا ما تستخدم للقيام بعملية استهلال الكائنات , ولكنها قد تستغل في أغراض أخري أيضا وهو ما يسمي زيادة التحميل . ودوال الانتهاء , أو المنبهات , هي دوال منتمية تستثار عند إنهاء حياة الكائن , وليس لها معاملات أو قيم معادة . وكل كائن ينشأ تخزن قيمة علي استقلال , ولكن دوال الفئة لا تختزن إلا مرة واحدة , وتكون تحت تصرف كافة الكائنات . كما يمكن أن يكون لمتغير نسخة واحدة لكافة الكائنات . كما يمكن أن يكون لمتغير نسخة واحدة لكافة الكائنات , إذا ما عرف استاتيكيا . وليس ه...

الفئات , والكائنات , والذاكرة في ++C

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

الهياكل والفئات في ++C

صورة
الهياكل والفئات بينا في الأمثلة المعطاة إلي الأن أن الهياكل هي تجميع للبيانات وأن الفئات هي تجميع للبيانات مع الدوال , والواقع أن الهياكل يمكن أيضا أن تتضمن الدوال , فيمكن استخدام أيهما بلا اختلاف تقريبا . والفرق الشكلي الوحيد هو أن البيانات في الفئات تعتبر خاصة private مبدئيا , أي أنه يمكن تغيير الصياغة : Class foo { Private: Int data1: Public: Void func(); } إلي : Class foo { Int data1; Public: Void func(); } حيث لم نذكر كلمة private . ويفضل بعض المبرمجين هذه الصياغة , ولكنا نري أن ذكر كلمة private تعطي وضوحا أكثر . وفي المقابل تعتبر البيانات عامة public مبدئيا في الهياكل . فإذا أردت لها أن تكون كما في الفئات , فعليك أن تخصها بذكر كلمة private , علي أن تضع العناصر العامة قبلها علي النحو التالي : Struct foo { Void func(); Private Int data1; } حيث إن الوضع المبدئي هو العام . علي أن غالبية المبرمجين يفضلون استخدام الهياكل لتجميع البيانات , والفئات لتجميع البيانات مع دوالها .

الكائنات كمعاملات للدوال في ++C

صورة
الكائنات كمعاملات للدوال البرنامج التالي صورة معدلة من البرنامج englobj.cpp يضم عدة مفاهيم جديدة متعلقة بالفئات ؛ زيادة تحميل , وتعريف دوال خارج الفئة , ثم , وربما الأهم , استخدام الكائنات كمعاملات الدوال . englcon.cpp   // englcon.cpp // constructors, adds objects using member function // UCS Laboratories #include <iostream.h> #include <conio.h>   class Distance // English Distance class { private : int feet; float inches; public : Distance() // constructor (no args) { } Distance( int ft, float in ) // constructor (two args) { feet = ft; inches = in ; }   void getdist() // get length from user { cout << "\nEnter feet: " ; cin >> feet; cout << "Enter inches: " ; cin >> inches; }   void showdist() // display dis...

البادئات في ++C

صورة
البادئات أتاح البرنامج السابق طريقتين لتخصيص قيم لبيانات الكائن ؛ الأولي عن طريق البرنامج (الدالة setdist() ) والثانية عن طريق المستخدم ( الدالة getdist() ) . ولكن حبذا لو وجدنا طريقة لاستهلاك الكائن , أي إعطاؤه القيم وقت التعريف به , كما تستهل المتغيرات , مثلا بأمر كالتالي : Distance dist (4, 2.5); // استهلاك كائن نلجأ لهذه المهمة إلي نوع خاص من الدوال المنتمية , يعمل تلقائيا عند إنشاء الكائن , ومن ثم تسمي دوال الابتداء , أو البادئات constructors , فالدالة البادئة (سوف نطلق عليها اختصارا : البادئة ) هي دالة منتمية للكائن , تنفذ تلقائيا عرضا معينا بمجرد أن يظهر الكائن للوجود . والواقع أن دوال البدء موجودة في اللغات البرمجية , تعمل تلقائيا بمجرد تعريف المتغيرات , فعند تعريف متغير بأنه من النوع int مثلا , تعمل دالة معينة تلقائيا علي حجز 2 بايت من الذاكرة له . وبإعطائك إمكانية استغلال البادئات تكون قد منحت إحدي الإمكانيات التي لواضعي محولات الصياغة للغات البرمجية . فليكن ذلك خطوة علي طريق مستقبلك المهني في البرمجة . مثال لعداد المثال التالي يبين فكرة البادئات , كما يقدم كائن...

الفئات والكائنات في ++C

صورة
والأن إلي الموضوع الذي طال شوقنا إليه . لقد وضعنا الأساسيات , فقد عرفنا كيف نقوم عن طريق الهياكل بتجميع الأنواع المختلفة من البيانات في مجموعات , وتعلمنا كيف نتعامل مع الدوال , وبها ننظم البرنامج علي شكل وحدات ذات تسميات مستقلة . وفي هذا الفصل سوف نجمع بين المفهومين , وسوف نقدم لك عدة أنواع من الفئات , بادئين بالأبسط ومتدرجين لأعقد . وسوف نركز أولا علي تفاصيل الفئات والكائنات , وفي نهاية الفصل نأخذ نظرة أشمل , فنبين ما الذي نستفيده من الأسلوب الكائني . وقد تحتاج خلال متابعتك هذه المقالات لأن ترجع بين الحين والأخر للمفاهيم التي أوردناها في المقالات السابقة . مثال 1 يضم مثالنا التالي كائنين ينتميان لفئة بسيطة , ورغم ذلك , يقدم المثال الخصائص العامة للفئات في لغة السي ++ . smallobj.cpp   // smallobj.cpp // demonstrates a small, simple object #include <iostream.h> #include <conio.h>   class smallobj // specify a class { private : int somedata; // class data public : void setdata( in...