C++/מחלקות: הבדלים בין גרסאות בדף
תוכן שנמחק תוכן שנוסף
Ybungalobill (שיחה | תרומות) אין תקציר עריכה |
Ybungalobill (שיחה | תרומות) |
||
שורה 194:
== העתקת אובייקטים ==
בC++ ישנו בנאי אחד ואופרטור אחד המוגדרים
<div style="direction: ltr;"><source lang="cpp">
Date myBirthday(18, 6, 1991);
שורה 202:
</source></div>
אומנם גישה זו לא תתאים למחלקת myString. הבעייה היא שהנתונים אותם מאחסנת המחלקה נמצאים מחוץ למחלקה עצמה, הם לא משתני המחלקה
כאשר נשתמש באופרטור ההשמה a = b המצב יהיה גרוע יותר: לאזור אחד בזיכרון, השייך במקור ל-b יצביעו שני מצביעים כמו במקרה הקודם, ובנוסף יהיה לנו אזור שני, השייך במקור ל-a, אליו לא יהיה מצביע כלל. אזור זה לא ישוחרר. נציץ טיפה קדימה לנושא העמסת אופרטורים ונדגים כיצד להגדיר אופרטור השמה למחלקה שלנו, בדוגמה זו נשתמש במצביע this כדי לחשוף את המקרים בהם אנו משימים את המשתנה לעצמו (a = a):
|