Dev-Hack

Dev-Hack

جميع برامج الاخترق و تعليم الاخترق و دورات الاخترق

تم افتتاح افرع جديد لمنتدى المنتدى هو www.sport-sat.com الرجاء التسجيل به

    شرح ال class لطلاب ال c++

    شاطر
    avatar
    A-Ghazaleh
    Admin

    عدد المساهمات : 96
    السٌّمعَة : 24
    تاريخ التسجيل : 07/10/2010

    شرح ال class لطلاب ال c++

    مُساهمة من طرف A-Ghazaleh في الإثنين نوفمبر 08, 2010 7:52 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= المساحة .




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

      الوقت/التاريخ الآن هو الأربعاء يوليو 18, 2018 7:54 pm