الوحدة السادسة:::::من الدروس

محتويات الوحدة
 
البيانات والدوال الساكنة
مثال الصيغة العامة
استدعاء الدالة الساكنة
 
 
 
 
 
 
 
 
وحدات اخرى
 
  الوحدة الأولى
  الوحدة الثانية
  الوحدة الثالثة
  الوحدة الرابعة
  الوحدة الخامسة
  الوحدة السادسة
  الوحدة السابعة
  الوحدة الثامنة
  الوحدة التاسعة
  الوحدة العاشرة
  الوحدة الحادية عشر
  الوحدة الثـانية عشر
  الوحدة الثالثة عشر
  الوحدة الرابعة عشر
 

 مواقع أخرى

 

الأخبار

 
  الجزيرة
  العربية

  BBC عربي

  CNN عربي

 

الصحف

 

  الحياة
  الوطن
  القدس العربي
  الشرق الأوسط

 

 الجامعات

 
  جامعة أم القرى
  جامعة الملك فهد

  جامعة الملك سعود

  جامعة الملك عبد العزيز  

 

الرياضة

 
  شبكة الزعيم
  منتديات مدريدي

 

 

 
 


الوحدة السادسة            

   
 البيانات والدوال الساكنة

Static Data and Functions

البيانات الساكنةStatic Data  :-

   هي عبارة عن خصائص(متغيرات)  مشتركة ين كل كائنات الصنف أي أن كل الكائنات لها نسخة واحدة من هذه الخصائص

وفقاً  static وللإعلان عن المتغيرات الساكنة نستخدم الكلمة المحجوزة

للصيغة التالية:-

Static  datatype   var_name;

 
 
 

 أعلى

 

 

   
 مثال الصيغة العامة :-

#include<iostream.h>

#include<conio.h>

class staticproperty

{

public:

          static  int   n;

          staticproperty(  )

          {

                   ++n;

          }

          ~staticproperty(  )

          {

                   --n;

          }

};

int staticproperty::n=0;

main(  )

{

          staticproperty s1,s2,s3;

          cout<<staticproperty::n<<"\n";

          cout<<s1.n<<"\n";

          cout<<s3.n<<"\n";

          getch(  );

}

ملاحظات:-

 1- المتغير n  هو خاصية أو متغير مشترك للكائنات لأنه استاتيكي  static فقيمة هذا المتغير ثابتة عند كل الكائنات

2- لابد للمتغير n  من النوع int    وهو ساكن أن يأخذ قيمة ابتدائية

int     staticproperty::n  = 0;

     باستخدام مؤثر دقة الوصول n 3 - يمكن الوصول إلى المتغير 

staticproperty::n

   أو باستخدام  الكائنات  لأنه من النوع  public

         مثلاً    s1.n          

ملاحظة مهمة:-

يجب أن تكون الدوال التي تصل إلى متغير ساكن من النوع  static  أيضا

مثلاً في المثال السابق:-

لو أضفنا داخل الصنف الدالة التالية:-

static void display(    )

{                        

cout<<n;

}                          

لاحظ:-

طالما أن المتغير  n  المستخدم داخل الدالة ساكن لذلك لابد من أن تكون الدالة (  ) display

من النوع static

 
 
 

 أعلى

 
   
استدعاء الدالة الساكنة:-

 

يتم استدعاء الدالة الساكنة بطريقتين

1. باستخدام مؤثر دقة الوصول

(void staticproperty::display) .

2.  عن طريق الكائن مثلاً  (s1.display) .

 

والآن نكتب البرنامج بصورة متكاملة باستخدام الدالة الساكنة:-

 

#include<iostream.h>

#include<conio.h>

class staticproperty

{

public:

          static int n;

          staticproperty(   )

          {

                   ++n;

          }

          ~staticproperty(  )

          {

                   --n;

          }

static void display(  )

{

          cout<<n;

}

};

int staticproperty::n=0;

main()

{

          staticproperty s1,s2,s3;

          void staticproperty::display(  );

          cout<<"\n";

          s1.display(  );

          cout<<"\n";

        s3.display(  );

          cout<<"\n";

          getch(  );

}

مثال آخر عن الدالة الساكنة:-

                 

#include <iostream.h>

class sample

          public:

                   static int n;

                   sample (  ) 

                   {

                n++;

                   }

       ~sample (  )

                   {

                     n--;

                   }

};

int sample::n=2;

void main (  )

{

           sample   a;

           sample   b[4];

             sample * c = new sample[2];

             cout << c->n <<"\n";

             delete[ ]  c;

       cout << sample::n <<"\n" ;

  }

<< الوحدة السابقة

 أعلى

الوحدة التالية >>

 

                                                             

 
   
 

جميع الحقوق محفوظة © 2006