Constructor: هي دالة تحمل أسم class الذي تنتمي إليه لا يمكن أن تعيد قيمة تستدعى تلقائيا في كل مرة يتم تكوين object وتستخدم لإعطاء قيم ابتدائية لمتغيرات class
يمكن أن تحتوي على parameters .
Destructor : هي دالة تحمل أسم class الذي تنتمي إليه ويسبق الاسم بالإشارة (~) وتستدعى تلقائيا عندما ينتهي عمل object وتستخدم لحذف object من الذاكرة أي أن الدالة تستدعى عندما ينتهي البلوك الذي عرف فيه object
لا يجوز أن يضم class أكثر من دالة هدم
لا تأخذ دالة الهدم أي parameters ولا تعيد قيم
# include <iostream.h>
class myclass {
int a ;
public :
myclass()
{ cout<<"In constructor\n";
a=10;
}
~myclass()
{cout<<"In destructor\n";
}
void show()
{ cout<<a;
}
};
int main()
{ myclass ob;
cout<<"Hello"
return 0;
}
سؤال ما الفرق بين ناتج المثال السابق والمثال التالي:
# include <iostream.h>
class myclass {
int a ;
public :
myclass()
{ cout<<"In constructor\n";
a=10;
}
~myclass()
{cout<<"In destructor\n";
}
void show()
{ cout<<a;
}
};
int main()
{ myclass();
cout<<"Hello"
return 0;
}