דף הבית  שיעורים  הורשה וגישה  הרשאות גישה
 
הרשאות גישה
 
כעת נטפל בנושא שהשארנו פתוח מאז השיעורים על המחלקות.
בתחילת ההסבר על מחלקות הצגנו את המילה public וכעת נסביר את משמעותה.
נניח שאתה כותב מחלקה שמישהו אחר עלול להשתמש בה. יתכן שיהיו נתונים ופונקציות במחלקה, בהם לא תרצה שישתמשו. איזו סיבה יש לרצות למנוע מאחרים להשתמש בנתונים?
ובכן יש מספר סיבות, נשתמש במחלקה Date, אותה אנו מכירים כבר משיעורים קודמים, כדי להמחיש סיבות אלו.

class Date {
public:
 int day;
 int month;
 int year;
 /* member function decleration... */
};
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

עד עכשיו אכסנו את נתוני היום, החודש והשנה בשלושה int-ים שונים. זה בסדר, אך זה דורש יותר מקום ממה שבאמת צריך.
יש הרבה דרכים אחרות בהן ניתן לאכסן אותם. אפשרות אחת תהיה לאכסן את כל שלושת הערכים במשתנה long יחיד:

class Date {
public:
 long yyyymmdd;
};
העבר את העכבר על שורות הקוד בכדי לקבל הסבר מפורט

דבר זה יגרום לקוד ולפונקציות החבר להיות מעט יותר מסובכות, אך אובייקט ה-Date ידרוש פחות מקום בדרך זו.
מה שחשוב כאן הוא לא איזו דרך טובה יותר, אלא מכיוון שלשתי הגישות יש יתרונות, מה שבאמת תרצה, הוא לכתוב את המחלקה בדרך מסוימת, ולאפשר את השינוי לדרך השניה במידה ותרצה בזאת מאוחר יותר.
ובכן, כדי לאפשר זאת, עליך למנוע את הגישה למשתני המחלקה month ,year ו-day. אם אחרים לא ייגשו אליהם, לא יהיה אכפת להם אם תחליף את צורת המימוש שלהם מאוחר יותר.
עוד סיבה שבגללה יתכן ותרצה למנוע שינוי נתונים ע"י אחרים, היא הסיבה שהם עלולים לעשות זאת בצורה לא תקינה.