מדריך זה מראה את השימוש בפרמטרי התייחסות ב-C++ ומדגים זאת באמצעות קוד לדוגמה.
מהו פרמטר התייחסות ב-C++?
ב-C++, פונקציות משמשות כדי להגדיר סוג מסוים של פעולה שניתן לנצל מחדש בתוכנית C++ שוב ושוב. לפונקציות יש פרמטרים, שמהם הן מעבירות ערכים לפונקציה. פרמטרי התייחסות הם אותם משתנים שיכולים לשנות את הערך של משתנה מבלי להכריז על המשתנה החדש מחוץ לטווח הפונקציה.
תחביר
פרמטרי התייחסות ב-C++ מסומנים בהצהרת הפונקציה באמצעות ה- & סֵמֶל. פורמט C++ עבור פרמטרי התייחסות הוא כדלקמן:
return_type function_name ( סוג מידע & שם פרמטר ) {
// גוף הפונקציה
}
ב-C++ & סימן זה מציין התייחסות למשהו. שלעיל & סימן מציין את פרמטר ההתייחסות. ה סוג מידע מתייחס לסוג הפרמטר ו שם פרמטר מייצג את השם של פרמטר ההפניה.
יישום פרמטר הפניה ב-C++
בואו נתקדם ליישום של תוכנית C++ באמצעות פונקציה שלוקחת ארגומנט כפרמטר התייחסות:
#includeבאמצעות מרחב שמות std ;
בָּטֵל ירידה ( int & ref ) {
ref --;
}
int רָאשִׁי ( ) {
int על אחד = 10 ;
cout << 'הערך של num לפני ירידה: ' << על אחד << endl ;
ירידה ( על אחד ) ;
cout << 'הערך של num לאחר ירידה: ' << על אחד << endl ;
לַחֲזוֹר 0 ;
}
בדוגמה זו, ה על אחד משתנה מאותחל עם ערך של 10 ב- רָאשִׁי() פוּנקצִיָה. ראשית, הערך המקורי של ה על אחד משתנה מודפס באמצעות cout , אחרי זה decrement() הפונקציה נקראת כדי להדפיס את הערך שהשתנה של על אחד משמש כפרמטר התייחסות.
לפיכך, פרמטרי התייחסות יכולים לשנות את הערך של משתנים אחרים מחוץ לפונקציות עצמן. להלן הפלט על המסך של ה תוכנית C++ שהוזכרה לעיל:
כאשר ברצונך לשנות ערך של משתנה מבלי ליצור משתנה חדש, פרמטרי הפניה שימושיים. ניתן להעביר מבני נתונים גדולים גם באמצעות הפניה, שהיא מהירה יותר משכפול מבנה הנתונים.
הערה: חשוב לציין לזכור כשעובדים עם פרמטרי התייחסות ב-C++. כאשר אתה מעביר משתנה בהתייחסות לפונקציה, אתה נותן לפונקציה גישה ישירה למיקום הזיכרון. אם תעביר כתובת זיכרון לא חוקית, כגון מצביע null או מצביע לזיכרון שכבר הוקצה, הפונקציה עלולה להתנהג בצורה בלתי צפויה או אפילו לקרוס.
סיכום
פרמטר התייחסות הוא מושג חיוני בפונקציות C++. פרמטרי התייחסות ידועים כמשתנים שיכולים לשנות את הערך של המשתנים האחרים, שהוא מפונקציה אחרת. ראינו דוגמה לפרמטרי התייחסות C++ במדריך לעיל. פרמטרי התייחסות מספקים שינוי במקום, גמישות והפניה מעבר לקודי C++.