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