• 0
NAE

Constructor and Destructor

سؤال

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;

}

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

3 إجابة على هذا السؤال .

  • 0

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

تم تعديل بواسطه [email protected]
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

الكود إللي مكتوب في 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
0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

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-)

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
زوار
This topic is now closed to further replies.

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .