مواقع أخرى
الأخبار
BBC عربي
CNN عربي
الصحف
الجامعات
جامعة الملك سعود
جامعة الملك عبد العزيز
الرياضة
دوال البناء والهدم
Constructor and Destructor Functions
هي عبارة عن دالة تنفذ تلقائيا عند تشغيل البرنامج من غير أي استدعاء.
أو بصورة أخرى:-
هي عبارة عن دالة يتم استدعاؤها مباشرة عند اشتقاق كائن من صنف معين وتستخدم لإعطاء خصائص الصنف قيم ابتدائية
ملاحظة:-
Classsدالة البناء يجب أن تملك نفس اسم الصنف
أعلى
دالة الهدم:-
هي عبارة عن دالة يتم استدعاؤها مباشرة عند اشتقاق كائن من صنف ولكن عند نهاية البرنامج.
خواص دوال البناء والهدم:-
1. تحمل نفس اسم الصنف ولكن دالة الهدم تسبق بعلامة (~) 2. يتم تعريفهم في مستوى الحماية العام public. 3. يمكن إنشاء أكثر من دالة بناء. 4. يمكن إنشاء دالة هدم واحدة فقط. 5. ليس لهما أنواع رجوع.
1. تحمل نفس اسم الصنف ولكن دالة الهدم تسبق بعلامة (~)
2. يتم تعريفهم في مستوى الحماية العام public.
3. يمكن إنشاء أكثر من دالة بناء.
4. يمكن إنشاء دالة هدم واحدة فقط.
5. ليس لهما أنواع رجوع.
مثال 1:-
توضيحي لدوال البناء والهدم:-
#include<iostream.h>
#include<conio.h>
class x
{
public:
x( );// دالة بناء
~x( );// دالة هدم
};
x::x( )
cout<<"constructor is called \n";
}
x::~x( )
cout<<"destructor is called \n";
getch( );
main( )
x x1,x2;
ملاحظات:-
1. يتم استدعاء دالة البناء عند اشتقاق الكائن وبصورة تلقائية .
2. دالة الهدم يتم استدعاؤها أيضاً بصورة تلقائية ولكن عند نهاية البرنامج.
3. كل كائن يستدعي دالة البناء ودالة الهدم.
مخرج البرنامج هو :
constructor is called
" " "
destructor is called
مثال 2 :-
برنامج يقوم بإيجاد العمليات الأساسية (الجمع ,الطرح , الضرب , القسمة ) لعددين مدخلين من قبل المستخدم باستخدام دالة البناء
class operations
float a,b,c;
operations( );
void result( );
operations::operations( )
cout<<"Mathematical Operations \n";
cout<<" 1- Addition \n";
cout<<" 2- Subtraction \n";
cout<<" 3- Multiplication \n";
cout<<" 4- Division \n";
cout<<" Please Enter Tow Values a and b \n";
cin>>a>>b;
void operations::result( )
c=a+b;
cout<<a<<"+"<<b<<"="<<c<<"\n";
c=a-b;
cout<<a<<"-"<<b<<"="<<c<<"\n";
c=a*b;
cout<<a<<"*"<<b<<"="<<c<<"\n";
if(b!=0)
c=a/b;
cout<<a<<"/"<<b<<"="<<c<<"\n";
else
cout<<"the result of division is infinite \n";
operations op;
op.result( );
1. تحمل نفس اسم الصنف ولكن دالة الهدم تسبق بعلامة ~
2. يتم تعريفهم في مستوى الحماية العام . public
دالة البناء التي تستخدم المعاملات:-
يمكن أن نستخدم أي نوع من المعاملات parameters في داخل دالة البناء وذلك من خلال إضافة عدد المعاملات الضرورية في دالة البناء المعلنة.
مثال:- دالة البناء التي تستخدم المعاملات
class myclass
int a,b;
myclass(int,int);
void show( );
myclass::myclass(int x,int y)
cout<<"constructor function \n";
a=x;
b=y;
void myclass::show( )
cout<<a<<"\t"<<b<<"\n";
myclass ob(4,7);
ob.show( );
الوحدة التالية >>
جميع الحقوق محفوظة © 2006