المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : شرح ال class لطلاب ال c++



بنت الحصن
05-26-2008, 11:39 AM
الأصناف :




تعريف الصنف : هو عبارة عن وحدة تحوي مجموعة من البيانات ( الخاصة والعامة )بالإضافة إلى تعريف الدوال ( العمليات ) حيث يطلق على الدوال المعرفة داخل الصنف بـ " أعضاء دالية " member Function .




* الإعلان عن الصنف :




أمثلة :.

مثال 1: مثال على صنف الوقت .::
كود:
class Time{private:int hor ,minute ,second;public:void settime(int,int,int);void printstandard ();void printmilitary();};



مثال 2 : مثال على صنف المستطيل :.

كود:
class rectangle{int x,y;public:void set_value(int,int);int area();};
بمجرد تعريف الصنف يمكن استخدامه كنوع جديد حيث يطلق عليه ( نوع معرّف من قبل المستخدم).




** تعريف الكائنات .::

يتم تعريف الكائنات في البرنامج الرئيسي وفقاً للصيغة التالية :

كود:
class_name object_name
حيث :
class_name : اسم الصنف ( نفس اسم الصنف الذي كتبناه في بداية البرنامج )
object_name : اسم الكائن ، وهو اختياري ، يستخدم للوصول لعناصر الصنف .




مثال.::
كود:
rectangle rect;
حيث rectangle اسم الصنف ، و rect اسم الكائن .

وإذا أردنا أن نعرف أكثر من كائن بنفس الوقت ، نفس العملية السابقة ، فقط نفصل بين كل كائن والآخر باشارة الفاصلة ( , ) . والمثال التالي يوضح ما سبق .::

كود:
rectangle rect1,rect2,rect3;



** استدعاء الأعضاء :.

أعضاء الصنف لا يمكن أن نصل إليها من خارج الصنف إلا عن طريق الكائنات ويتم ذلك بالصيغة التالية :
كود:
Object_name.member
حيث .::
Object_name : اسم الكائن .
member : اسم العضو الذي نريد الوصول إليه .
مثال : إذا أردنا الوصول للدالة area() باستخدام الكائن rect نكتب الآتي :

كود:
rect1.area()



البرنامج الأول : نقوم بكتابة برنامج يقوم بحساب مساحة المستطيل ( باستخدام الأصناف ) ..

كود:
#include <iostream.h>#include <stdlib.h>class rectangle{int x ,y;public :void set_value(int a,int b){x=a;y=b;}int area(){return x*y;}};main(){rectangle rect1,rect2;rect1.set_value(3,4);rect2.set_value(5 ,6);cout<<"Rect1 Area = "<<rect1.area()<<endl;cout<<"Rect2 Area = "<<rect2.area()<<endl; system("PAUSE");}
شرح للبرنامج :.
في البداية عرفنا متغيرات خاصة Private وهما x ,y وهنا ملاحظة وهي طالما أننا عرفنا ذلك في بداية الصنف ولم نحدد مستوى الحماية فإن مستوى الحماية الإفتراضي هو Private .
بعد ذلك أنشأنا دالة باسم set_value بوسيطين في مستوى الحماية العام Public وظيفة هذه الدالة هي مساواة القيم التي يحددها المستخدم بالمتغيرات الخاصة ، أو بمعنى أخر وظيفتها الوصول للمتغيرات الخاصة x,y .
بعد ذلك أنشأنا دالة area() وظيفتها إرجاع مساحة المستطيل وهي عملية حسابية
الطول × العرض .
ثم في الدالة الرئيسية main() قمنا في البداية في باشتقاق كائنين rect1 و rect2 بعد ذلك قمنا باستدعاء دالة set_value وحددنا قيم الوسائط ..
ثم بعد ذلك استدعينا دالة حساب المساحة area() لكل من الكائنين rect1 ,rect2 .




** البرنامج الثاني : برنامج يقوم بحساب مساحة ومحيط الدائرة ( مستخدماً الأصناف ) .::
كود:
#include <iostream.h>#include <stdlib.h>class circle{private :int r;float area1,c;public :void get_r(){cout<<"Enter radius \n";cin>>r;}void area(){area1=r*r*3.14;}void cir(){c=2*r*3.14;}void display (){cout<<area1<<endl;cout<<c<<endl;}};main(){circl e c;c.get_r();c.area();c.cir();c.display(); system("PAUSE");}
نفس المثال السابق تقريباً من حيث الفكرة حيث :..
r = نصف القطر . area1=المساحة. c = المحيط .
cir = دالة ايجاد المحيط . display= طباعة المساحة والمحيط . area= المساحة .




تمرين ..:: أكتب برنامج يقوم بايجاد مضروب عدد مدخل من قبل المستخدم ( مستخدماً الأصناف ) ..

Ammar Qasaimeh
05-26-2008, 11:43 AM
مشكوره... بس خلصنا الماده وما اعطونا الكلاس... شكله على الاوبجكت رح يعطو

sam7jon
05-26-2008, 11:51 AM
انا لسا ما خدتها ,انشالله بفيدوني
يعطيك العافيه

معاذ ملحم
08-08-2008, 12:14 PM
مشكورة

الله يعطيكي العافيه

اذا عندك اي مواضيع بتخص علم الحاسوب اعرضيها النا

ahmed868
12-18-2008, 04:53 PM
مشكورررررررررررر

jfx_x
02-18-2009, 08:30 PM
موضوع حلو ل CS

brazi
03-06-2009, 12:39 AM
موضوع رجيد

أم صالح 99
03-09-2009, 09:52 PM
مشكووووووووووووووورة

فراشة
09-13-2009, 01:23 AM
شكرا الك بنت الحصن ....
انا بصراحة اخذت المادة Object عى الصيفي اللي راح ..
وبتمنى تفيديني في مواد تانية
...وشكرا كتير الك .....

dana al_ghraibeh
10-24-2009, 05:03 PM
امنيتي افهم ماده سي بلص كلها

ياريت استفيد منكم

ahmaadaadel
02-08-2010, 11:18 PM
جزاك الله كل خير

موضوع جــــــــمـــــــــيـــــــــــــــل

انا مشكلة الكلاس كانت كبيرة بالنسبالي لكن انت لفت نظري لحاجت كتير

الموضوع صغير بس فادني جدا

جعلك الله زخرا للاسلام و المسلمين

:):eh_s(15)::eh_s(15)::eh_s(15)::)

makz
03-10-2010, 01:39 PM
شكراً

ميناس
05-18-2010, 09:19 PM
يعطيكي العافية
الموضوع مفيد كتيررررررررررررررر:bl (11):