ההבדל בין תפקוד חבר למעמד חבר
תוֹכֶן
פונקציית החבר וכיתת החברים הן הטכניקות המשמשות לגישה לחברים הפרטיים בכיתה באמצעות מילת מפתח של חבר. ההבדל השכיח בין פונקציית חברים לשיעור חברים הוא שכאשר משתמשים בפונקציית החברים ניתן לגשת לחברים בכיתה הפרטית אך בכיתת חברים, רק לשמות של כיתת החברים ניגשים ולא החברים הפרטיים בכיתה.
ה תכונת חברים בין אם משתמשים בפונקציה או בכיתה יכול לגרום להשפעה שלילית על המסגרת מוכוונת האובייקט כשהוא מחליש את כימוס וזה נגד מונחה עצמים פרדיגמה. זו הסיבה שיש להשתמש בתבונה של החבר בתבונה אחרת היא יכולה לשבור ה מסתיר נתונים של הקוד.
תכונת החברים הזו אינה קומוטטיבי וגם לא מעבר. X הוא חבר של Y לא מסיק ש- Y הוא גם חבר של X. אם X הוא חבר של Y ו- Y הוא חבר של Z, זה לא רומז ש- X הוא חבר של Z.
-
- טבלת השוואה
- הגדרה
- הבדלים עיקריים
- סיכום
טבלת השוואה
בסיס להשוואה | פונקציית חבר | כיתת חברים |
---|---|---|
בסיסי | זוהי פונקציה המשמשת עם מילת מפתח של חבר כדי להעניק לפונקציה שאינה חברים גישה לחברים הפרטיים בכיתה. | זוהי כיתה המשמשת עם מילת מפתח של חבר כדי לגשת לחברים הפרטיים בכיתה אחרת. |
הצהרת קדימה | חייב להשתמש. | לא חובה. |
להשתמש | ניתן להשתמש בפונקציה של חבר במצב כלשהו של עומס יתר של מפעיל. | ניתן להשתמש בכיתת חברים כאשר נוצרת כיתה בראש כיתה אחרת. |
הגדרת פונקציית חבר
ה פונקציית חבר משמש לגישה לחברים הפרטיים והמוגנים בכיתה על ידי מתיר לפונקציה שאינה חברים לקבל גישה. בסוג זה של פונקציה משתמשים במילת מפתח לחברים לפני שם הפונקציה בזמן ההכרזה. ישנם כמה תנאים מגבילים החלים על פונקציית חבר. התנאי הראשון הוא שתפקוד החברים לא יורש על ידי כיתת ילדים. התנאי השני הוא שייתכן שמפרט מחלקות האחסון לא יהיה בפונקציית החברים, מה שאומר שלא ניתן להכריז עליו כסטטי וחיצוני.
פונקציית החבר לא נקראת עם אובייקט מזמין של הכיתה. הדוגמאות לפונקציית חבר הן: פונקציה גלובלית, פונקציית חברים בכיתה, תבנית פונקציה יכולה להיות פונקציית חבר. בואו נבין זאת בעזרת דוגמה.
# כלול פונקציית חבר נדרשת כאשר פונקציה צריכה לגשת לשני שיעורים עצמאיים או יותר, חברים פנימיים. מצד שני, יש צורך בכיתת חברים כאשר שיעור דורש גישה לחברי כיתה אחרת. כאשר פונקציה של מספר חברים צריכה להיות חברה של אותה פונקציה, במקרה זה, עדיף להשתמש בכיתת חברים.
סיכום