الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Constructor and Destructor

مغلق
بدأه NAE في 21 فبراير 2006 · 3 رد · 1,038 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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;

}

#2

صحيح ياجماعة ايه الفرق ؟؟؟؟؟؟ *-)

تم تعديل هذه المشاركة بواسطة H@mis في 25 فبراير 2006 في 21:22

#3

الكود إللي مكتوب في main في الاول هو

myclass ob;

يعني إنت طلبت إن يتم إنشاء الكائن ob و مش حيتم هدمه و تحريره من الذاكره إلا عند إنتهاء main

بينما الكود الثاني

int main()
{
   myclass();
   cout<<"Hello"
   return 0;
}

فبيساوي بالظبط

int main()
{
   {
      myclass temp;
   }
   // temp is destructed before cout << "hello" is executed
   cout<<"Hello"
   return 0;
}

و بالتالي ناتج المثال الأول حيكون

In Constructor

Hello

In Destructor

بينما ناتج المثال الثاني حيكون

In Constructor

In Destructor

Hello

تم تعديل هذه المشاركة بواسطة usama707 في 25 فبراير 2006 في 22:01

#4

mish fahma el rad bas ana a3raf en kida kida el gomla eli fi el destructor mish hatezhar le en el obj haymot ba3d ma el main te5las we ba3d ma el main te5las mafish haga betzhar 3ala shashet el console 8-)

هذا الموضوع مغلق.

مواضيع مشابهة