אני אני מפעיל D'tor של template?

צבתות

New member
אני אני מפעיל D'tor של template?

שאלה ב-CPP: יש לי template שמקבל class Data.
template <class Data, class Key> class Node { Data D; public: Node(new_data): D(new_data); ~Node() { HOW DO I CALL DATA TYPE D'TOR?? } };​
אני רוצה לשחרר את המידע, שיתכן שהוא רשימה מקושרת, מערך וכדומה. איך אני מפעיל את ה-D'tor של טיפוס מסוג Data?
 

DNile

New member
אתה לא.

הוא נקרא אוטומטית. כשיש לך Member של class(או template), יש בדיוק 2 דרכים ליצור אותו, וגם 2 דרכים לשחרר אותו. הדרך הראשונה היא כמובן להגדיר את המשתנה כpointer, ובconstructor לעשות new. בdestructor אתה תקרא לdelete עליו, ואז הוא יקרא בעקיפין לdestructor של הmember. הדרך השניה היא פשוט להגדיר משתנה שהוא member. (כמו שיש בקוד שלך), הdestructor שלו יקרא בשניה שהאובייקט שיצר אותו(במקרה הזה הnode), ימחק(יהרס/איך שאתה מעדיף לקרוא לזה).
 
למעלה