C++/מצביעים והמשתנה הפניה: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
תגיות: עריכה ממכשיר נייד עריכה דרך האתר הנייד
שורה 19:
הבה נגדיר משתנה מיוחס:
<source lang="c++">
int &refnum;
int &ref=num;
</source>
למשתנה המיוחס קראנו ref, הכרזנו אותו כמתייחס לטיפוס int, והקדמנו לשמו את התו &.
בדומה למקרה של הכרזת מצביע, שם נקדים את התו *.<br />
כעת נייחסייחסנו את המשתנה המתייחסref למשתנה רגיל אחר:num.
שימו לב: לא התרחשה כאן השמת ערכים, אלא ייחוס של המשתנה ref למשתנה num, כזה ייחוס אגב, יכול להתרחש רק פעם אחת בחייו של משתנה מיוחס, וחייב להתבצע בהכרזה שלו.
<source lang="c++">
int num;
ref=num;
</source>
שימו לב: לא התרחשה כאן השמת ערכים, אלא ייחוס של המשתנה ref למשתנה num, כזה ייחוס אגב, יכול להתרחש רק פעם אחת בחייו של משתנה מיוחס.
עכשיו אם נשנה את ערכו של ref, ישתנה גם ערכו של num, וכך גם ההפך:
<source lang="c++">
ref=10;
cout << num; //10
num=20;
cout << ref; //20
</source>
ניתן לראות שלקביעת ייחוס יש דמיון לנתינת שם חדש, נרדף, למשתנה. את אותו הדבר יהיה אפשר כמובן ליישם בעזרת מצביעים, אבל אם כך, היינו זקוקים לשימוש רב באופרטורים.