Logo

רד-בורד: ארכיון

ראשי > תיכנות > שאלה: מה ההבדל בין ייחוס למצביע(C++)

07/06/2007 19:21:03 WorldTyrant
מה ההבדל בין ייחוס(reference) למצביע(pointer) בשפת C++?

תודה.
15/06/2007 18:57:28 HLL
וווי כיף כיף! שאלה טובה :) סופסוף
כמה שאני אוהב שאלות כאלה...

אז ככה... בגדול - אין הבדל בניהם. בדוגרי שהם מבצעים את אותה העבודה
- אבל -
תחשוב על ייחוס כעין מעטפת למצביעים.
כמה פיצ’רים של ייחוסים שאין למצביעים:
1. ייחוסים הינם קבועים וחובה לאתחל אותן בהגדרתן (מונע null referances וגלישות מערכים למיניהם)
2. ייחוסים מקבלים את ההצבעה שלהם לטיפוס באופן אוטומאטי (אין צורך לציין אופרטור ’כתובת של’)
3. ייחוסים מתייחסים בצורה אוטומאטית כאל ההטיפוס שאליו הם מייחסים(אין צורך לציין אופרטור ’ערך של’)
4. לא ניתן לקבל כתובת של ייחוס, על כן לא ניתן ליצור ייחוס לייחוס ולא מצביע לייחוס.

בסה"כ - ייחוסים הם עדיפים, יותר נוחים ויותר בטוחים. אבל אי אפשר להשתמש בהם בכל המקרים.
שבת שלום :)
הלל.
15/06/2007 19:10:12 Ratinho
שסיירתי היום בפרש ראיתי גםש אלה כזו דיוק (מן הסתם אתה), והיו שם תשובות בסגנון שבC++ אסור להשתמש בפויינטרים (רק במיוחסים) אלא אם אתה "אשף" שימוש שבזכרון באופן ידני..
15/06/2007 19:22:26 HLL
וכשאתה עובד עם stl, פשוט אין לך צורך במצביעים ...


חחח איזה שני מורעלים מדסקסים על דא-והא שמה בטראד...[ההודעה נערכה על-ידי HLL ב-15/06/2007 19:29:39]
עמודים: 1