פורסם 2004 בינואר 1321 שנים נניח שבניתי class מסויים:class list {private:int wanted;int wanted1;int length1;int currlocation;public:chain *previ;chain *anchor;chain *curr;list(int);~list();void clear();void insert(const elem);};איך אני צריך להגדיר את ה-destructor כך שישחרר לי את הזיכרון שנתפס ע"י פוינטר?
פורסם 2004 בינואר 1321 שנים פוינטר לא תופס זיכרון מעבר ל-32 ביט שהוא לוקח, והוא משוחרר אוטומטית.במידה והגדרת בלוק דינאמי אליו הפוינטר יצביע (בעזרת malloc או new) אתה תרצה לשחרר את הזיכרון הזה במידה והרגת את ה-class.לכן אתה מגדיר פונקצית destroctor שתשחרר את היזכרון הדינאמי שהקצת.
פורסם 2004 בינואר 1321 שנים אתה עושה לו פשוט deleteאתה כותב פונקציה שהמבנה שלה בדיוק כמו ה-constructor רק עם גל לפנידוגמא פשוטה ל-classclass String {... char* val; String(); ~String();}String::String() { val = new char[10];}String::~String() { if(val) delete[] val;}
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.