שאלה של הרס (לא) עצמי
היי,
האם יש משמעות לקריאה מפורשת ל- destructor ?
הקוד הזה למשל (++C כמובן) :
#include <iostream>
using namespace std;
class Type
{
public:
Type()
{
cout << "I'm A c'tor" << endl;
}
~Type()
{
cout << "I'm a d'tor" << endl;
}
};
void main()
{
Type obj;
obj.~Type();
obj.~Type();
cin.get();
}
יוציא פלט כזה:
I'm a c'tor
I'm a d'tor
I'm a d'tor
I'm a d'tor
לכאורה, 2 הקריאות המפורשות להורס לא עשו שום רושם על התוכנית,
הוא התבצע אבל לא השפיע על קיום האובייקט.
מתי, אם בכלל, יש צורך בשימוש כזה?
מדוע בדוגמה הנ"ל, לא היתה שום השפעה על האובייקט?
האם יש קשר להקצאה סטטית או דינמית של האובייקט (עם new) ?
ואיפה נכנס לסיפור delete ?
תודה מראש
היי,
האם יש משמעות לקריאה מפורשת ל- destructor ?
הקוד הזה למשל (++C כמובן) :
#include <iostream>
using namespace std;
class Type
{
public:
Type()
{
cout << "I'm A c'tor" << endl;
}
~Type()
{
cout << "I'm a d'tor" << endl;
}
};
void main()
{
Type obj;
obj.~Type();
obj.~Type();
cin.get();
}
יוציא פלט כזה:
I'm a c'tor
I'm a d'tor
I'm a d'tor
I'm a d'tor
לכאורה, 2 הקריאות המפורשות להורס לא עשו שום רושם על התוכנית,
הוא התבצע אבל לא השפיע על קיום האובייקט.
מתי, אם בכלל, יש צורך בשימוש כזה?
מדוע בדוגמה הנ"ל, לא היתה שום השפעה על האובייקט?
האם יש קשר להקצאה סטטית או דינמית של האובייקט (עם new) ?
ואיפה נכנס לסיפור delete ?
תודה מראש