מה ההבדל בין private ל protected?

ברנדל

New member
אילן

בד"כ אני נוטה לענות תשובות גם על שאלות שהשואלים היו יכולים לגלות בעצמם. אבל במקרה הזה, באמת הייתי ממליץ לך לקרוא מספר טוב, כי אפשר לרשום על זה איזה 50 עמודים לפחות. כל תשובה שיענו לך פה לא תהיה מספקת, מדובר באם אמא של הבסיס של OO. אם את זה אתה לא יודע , עדיף לך לחכות איזה יום יומיים עד שתיכנס לנושא של friend.
 

ברנדל

New member
אופס, חשבתי שאתה שואל מה..

ההבדל בין private ל public . לא משנה. הסבר קצר: encapsulation מדבר על הרעיון של הסתרת משתני private מה client שמשתמש במחלקה שלך. הבעיה היא שבהורשה , הבן לא יכול לגשת למשתנים שהוגדרו באב כ private. אם לעומת זאת אתה מגדיר את המשתנים באב כ protected, אז הבן כן יכול לגשת למשתני האב שמוגדרים ב section זה, אבל עדיין מי שנמצא מחוץ לשרשרת ההורשה הזו לא יכול לגשת אליהם. friend : הגדרת פונקציה בתוך מחלקה כ friend , קובעת שאותה פונקציה למעשה אינה שייכת למחלקה, הפונקציה מוצהרת ומוגדרת במקום אחר ועצם היותה "ידידותית" למחלקה מאפשרת לפונקציה זו לגשת גם למשתנים הפרטיים של המחלקה. כעיקרון שימוש ב friend מנוגד לרעיון של OO, משתמשים בזה בעיקר בחפיפת אופרטורים קומטטיביים או ב designs מיוחדים כגון bridge. כפי שאתה רואה קשה להבין יותר מידי מהסברים קצרים. עדיין אני ממליץ לך ללמוד את זה בצורה מסודרת.
 
למעלה