مواقع أخرى
الأخبار
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) .
والآن نكتب البرنامج بصورة متكاملة باستخدام الدالة الساكنة:-
main()
void staticproperty::display( );
cout<<"\n";
s1.display( );
s3.display( );
مثال آخر عن الدالة الساكنة:-
#include <iostream.h>
class sample
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