עבור לתוכן

משהו קטן שאני לא מבין לגבי סי++

Featured Replies

פורסם

	void add(const Rational &c)

כאן משתמשים ב& אבל לפעמים משתמשים ב*. השאלה שלי מתי משתמשים ב * ומתי יש צורך להשתמש ב &.

פורסם

אאל"ט, משתמשים ב & כאשר רוצים להעביר את המשתנה כ- Reference,

וב * כאשר מעבירים מספר דינמי של ארגומנטים.

פורסם

להעברת פרמטרים באמצעות & יש שני שימושים:

1. אם אתה רוצה להיות מסוגל לשנות את הערך של הפרמטר ביציאה מהפונקציה.

2. לחסוך העתקה, שיכולה להיות כבדה במקרה שאתה מעביר אובייקט שאינו פרימיטיבי (כשמעבירים by value אובייקט לפונקציה, האובייקט מועתק על ידי קריאה ל-copy ctor שלו).

לשני השימושים האלה אפשר גם להשתמש ב-*. בשפת C אי אפשר היה להעביר משתנה לפונקציה באמצעות &, וזה התווסף רק ב-++C (למעשה, שימוש ב-& הוא שקול לשימוש ב-* מאחורי הקלעים).

להעברת פרמטר באמצעות מצביע יש שימושים נוספים:

אפשר להעביר NULL - שימוש נפוץ של זה הוא פונקציות שמקבלות כפרמטר אובייקט עזר, ושאם מעבירים להן NULL אז הן פשוט לא ישתמשו בו או ישתמשו בברירת מחדל כלשהי.

כפי שצויין מעליי, אפשר להעביר מערכים - מערך דינמי ומצביע הם למעשה שקולים.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים