إستخدام الدوال في الكلاس في لغة سي بلس بلس C++ الدرس|25| - Programmer Tech

Programmer Tech

تعلم البرمجة - علوم الكمبيوتر - أمن المعلومات - القرصنة الأخلاقية

إعلان اعلى المقالة

الخميس، 11 مارس 2021

إستخدام الدوال في الكلاس في لغة سي بلس بلس C++ الدرس|25|

 

إستخدام الدوال مع الكلاس

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

تعلمنا كيفية كتابة الكلاس و قُلنا أن المتغيرات الآن (فقط) ستكون عامة public و تحت بوبلك نقوم بكتابة جميع المُتغيرات التي نُريدها لأي كائن نقوم بتعريفه من نوع Date كما بمثال الدرس السابق, فعند تعريف كائن جديد على سبيل المثال birthday و عند كتابة إسم الكائن ووضع نقطه بعده سوف نجِد الإكمال التلقائي قد أتى لنا بجميع المُتغيرات العامة الذي وضعناها في الكلاس في الأعلى, نُلاحظ أن هُناك فرق بين الكائن object و كلاس class, فالكلاس هنا نقوم بتصميم مجرد فقط نقوم بكتابة ما هي الخواص المُهِمة لكل تاريخ و كل تاريخ به سنة و شهر و يوم فعند إنشاء أي تاريخ سيكون له شهر و يوم و سنة يعني عمل التصميم او القالب ,أما في الكائن فيكون تطبيق القالب أن يكون لدينا كائن حي به قيم للعناصر الذي في الكلاس, فعند تصميم الكلاس بدون كتابة الكائن فكأنه لا وجود للكلاس في البرنامج الذي نعمل به لأننا لم نقوم بتنفيذ هذا الكلاس, كعمل مثل تصميم لمنزل لكن لا يوجد منزل على ارض الواقع فقط قُمنا بكتابة عدد الأعمدة الموجودة و طريقة تصميم الأعمدة, هل طبقنا هذه الأعمدة على ارض الواقع؟ هل قمت بإنشاء منزل؟ و إن كان الجواب لا فلا وجود للمنزل, كذلك بالنسبة للكلاس و الكائن إذا لم نقُم بكتابة متغير من نوع الكلاس فإنه لا وجود لهذا الكلاس في الذاكرة, أي لا وجود لمتغير لهذا الكلاس.

بإختصار فإن الكائن هو مُتغير لديه قيم مخزَّنة في الذاكرة فإن الكلاس هو تصميم قالب لأي مُتغير من نوعه.

 

مثال 1

#include <iostream>
using namespace std;
class Date
{
public:
    int year;
    int month;
    int day;
    void print()
    {
        cout << day <<"/"<<month<<"/"<<year<<endl; cout
    }
};
int main ()
{
    Date birthday;
    birthday.year = 1995;
    birthday.month = 3;
    birthday.day = 23;
    birthday.print();
    
    Date birthday2;
    birthday2.year = 1994;
    birthday2.month = 2;
    birthday2.day = 22;
    birthday2.print();
    return 0;
}

 

شرح المثال السابق 1

قُمنا بإنشاء كلاس إسمه Date أي كلاس التاريخ و كان به ثلاث مُتغيرات عامة و هي للسنة year و للشهر month و لليوم day هذا كان في الكلاس و به دالة للطباعة و هي void print من أجل إستدعاءها لطباعة ما نحتاجه و أنشأنا دالة طباعة cout لأجل أن تقوم بطباعة تنسيق هذا الميلاد كيفما نُريد, و دخلنا للدالة main و قُمنا بتعريف هذا الكلاس على أنه تاريخ ميلاد وضعنا له الكائن birthday من أجل الوصول لمحتويات الكلاس عن طريقه و قُمنا بتعيين قيمة للسنة عبرَ الوصول لها عن طريق الكائن و كانت قيمتها 1995 و بنفس الأمر أسندنا قيمة للشهر و اليوم, ثم قُمنا بإستدعاء دالة الطباعة print من أجل طباعة الناتج, و قُمنا بإنشاء كائن آخر إسمه birthday2 لنصِل لمحتويات الكلاس لأجل طباعة الميلاد الثاني, عند تشغيل هذا الكود ستكون نتيجته هي


مثال 2

#include <iostream>
using namespace std;
class Date
{
public:
    int year;
    int month;
    int day;

    void print()
    {
        cout << day <<"/"<<month<<"/"<<year<<endl;
    }
    void fill(int d, int m, int y)
    {
        day = d;
        month = m;
        year = y;
    }
};
int main ()
{
    Date birthday;
    birthday.fill(23, 3, 1995);
    birthday.print();

    Date birthday2;
    birthday2.fill(22, 2, 1994);
    birthday2.print();

    return 0;
}


شرح المثال السابق 2

قُمنا بإنشاء كلاس إسمه Date أي كلاس التاريخ و كان به ثلاث مُتغيرات عامة و هي للسنة year و للشهر month و لليوم day هذا كان في الكلاس و به دالة للطباعة و هي void print من أجل إستدعاءها لطباعة ما نحتاجه, و أنشأنا دالة طباعة cout لأجل أن تقوم بطباعة تنسيق هذا الميلاد كيفما نُريد ثم أنشأنا الدالة fill و وضعنا بها المُتغيرات و هي d و m و y و عرّفنا إختصارات المُتغيرات أن d يعني اليوم day و m يعني الشهر month و y يعني السنة year و قُمنا بالدخول لدالة main و قُمنا بإنشاء كائن خاص بالمواليد و هو birthday ثم عيننا قيم للتاريخ الأول عبر إستدعاء الدالة fill و وضعنا التاريخ الذي يمرر هو 23/3/1995 و نفس الأمر بالنسبة للمواليد الثاني و عند التنفيذ كانت النتيجة هي

إضغط هنا للرجوع للدرس السابق

ليست هناك تعليقات:

إرسال تعليق

facebook

نموذج الاتصال

الاسم

بريد إلكتروني *

رسالة *