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

תוכן שנמחק תוכן שנוסף
אין תקציר עריכה
שורה 28:
כמו שאמרנו קודם, השימוש העיקרי של משתנים מתייחסים, כמו של מצביעים, הוא בפונקציות.
לדוגמה, נכתוב פונקציה שמחליפה בין ערכיהם של שני משתנים בשם ()swap:
<source lang="cpp">
<pre style="direction:ltr;">
#include<iostream.h>
 
שורה 49:
}
 
</presource>
שימו לב שהפרמטרים המועברים לפונקציה, הם ללא שום אופרטור מצביע.<br /> ובכל זאת הפונקציה משפיעה על המשתנים num1 וnum2 שנמאים בתוכנית.<br /> בתוך הפונקציה, הגישה לפרמטרים a ו b היא שגרתית כאילו הם משתנים רגילים, לאחר שכל אחד מהם כבר מתייחס למשתנה שנשלח לו, בהתאמה.<br />הפונקציה כמובן אינה מחזירה כלום ולכן מוגדרת כvoid. <br />
 
==משתנים מתייחסים כערכים מוחזרים==
ניתן לייצור משתנה מיוחס, שיוחזר מפונקציה (כאן num הוא משתנה גלובלי כלשהו):
<source lang="cpp">
<pre style="direction:ltr;">
int &getnum()
{
שורה 60:
return ref;
}
</presource>
הטיפוס המוחזר של הפונקציה ()getnum הוא משתנה מיוחס של int.
אפשר להשתמש בפונקציה בכדי לקבל את ערכו של num כך:
<source lang="cpp">
<pre style="direction:ltr;">
cout << getnum();
</presource>
פעולה כזאת אפשרית גם ללא משתנים מתייחסים, ולכן דרך יותר מעניינת היא, להציב ערך לnum דרך הפונקציה:
<source lang="cpp">
<pre style="direction:ltr;">
getnum()=50;
</presource>
עכשיו ערכו של num הוא 50.