# منتديات طلاب الجامعات الأردنية > منتدى علم الحاسوب CS >  شرح ال class لطلاب ال c++

## بنت الحصن

الأصناف :




تعريف الصنف : هو عبارة عن وحدة تحوي مجموعة من البيانات ( الخاصة والعامة )بالإضافة إلى تعريف الدوال ( العمليات ) حيث يطلق على الدوال المعرفة داخل الصنف بـ " أعضاء دالية " 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

*مشكوره... بس خلصنا الماده وما اعطونا الكلاس... شكله على الاوبجكت رح يعطو*

----------


## sam7jon

انا لسا ما خدتها ,انشالله بفيدوني
يعطيك العافيه

----------


## معاذ ملحم

مشكورة  

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

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

----------


## ahmed868

مشكورررررررررررر

----------


## jfx_x

موضوع حلو ل CS

----------


## brazi

موضوع رجيد

----------


## أم صالح 99

مشكووووووووووووووورة

----------


## فراشة

شكرا الك بنت الحصن ....
انا بصراحة اخذت المادة Object عى الصيفي اللي راح ..
وبتمنى تفيديني في مواد تانية
 ...وشكرا كتير الك .....

----------


## dana al_ghraibeh

امنيتي افهم ماده سي بلص  كلها 

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

----------


## ahmaadaadel

جزاك الله كل خير

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

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

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

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

 :Smile:  :Eh S(15):  :Eh S(15):  :Eh S(15):  :Smile:

----------


## makz

شكراً

----------


## ميناس

يعطيكي العافية 
الموضوع مفيد كتيررررررررررررررر :Bl (11):

----------

