C++/מחלקות: הבדלים בין גרסאות בדף

הוסרו 8 בתים ,  לפני 10 שנים
== מפרקים ==
 
מפרק הוא פונקציה הפוכה לבנאי, כלומר, המטרה העיקרית של המפרק היא לשחרר את המשאבים שהוקצאו ע"י הבנאי. המפרק נקרא בעת השמדת מופע המחלקה, דבר זה יקרה בעת יציאה מבלוק עם משתנים מקומיים מטיפוס המחלקה, שימוש ב-delete על אובייקט שהוקצאשהוקצה דינאמיתדינמית או בעת יציאה מפונקצית ה-main (יושמדו המשתנים הגלובליים והסטטיים).
 
למפרק ניתן את שם המחלקה שלפניו נוסיף זרקאטילדה (~). סימן זה בא לציין שמפרק הוא "לא בנאי", הזרקאהטילדה בCב-C++{{D}} היאהוא אופרטור הפיכת הסיביות (Bitwise NOT). כיוון שהמפרק נקרא אוטומטית הוא לא יקבל פרמטרים ולא יחזיר ערך. לדוגמה, הנה חלק מממוש אפשרי למחלקת מחרוזות:
<div style="direction: ltr;"><source lang="cpp">
class myString
 
public:
// בנאי העושה עותק שלהמעתיק מחרוזת קיימת
myString(const myString& str)
{
~myString()
{
// יש לשחרר את הזיכרון שהוקצאשהוקצה
delete[] buf;
}
</source></div>
 
''הערה:'' ניתן לקרוא למפרק באופן ישיר מבלי לפנות את הזיכרון: {{קוד בשורה|str.~myString()}} אך זהו נושא מתקדם העוסק בעבודה עם זיכרוןזכרון לא מאותחל.
 
== מצביע this ==