C++/הורשה: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
Atavory (שיחה | תרומות)
מ C++/הורשה והרשאות הועבר לC++/הורשה: לכל אחת מהורשה והרשאות יש לפחות חומר לפרק שלם.
Atavory (שיחה | תרומות)
אין תקציר עריכה
שורה 1:
{{שכתוב}}
==הורשה==
 
מאפיין בסיסי של תכנות מונחה עצמים הוא מנגנון ההורשה, שמאפשר לנו לתת פתרון ספציפי לבעיה מסויימת מתוך פתרון גנרי קיים. למשל, נתונה לנו מחלקה המתארת אוגר שיודע לאכול ולישון, ומוגדרת בצורה הבאה:
שורה 55:
</div>
באופן הזה יצרנו את מחלקת אוגר הקרב הסיבירי בשורת קוד אחת, וקיבלנו אוגר קרב שיודע לעשות גם את כל מה שחיה סיבירית יודעת לעשות.
השימוש בהורשה מרובה הוא אמנם מאוד לא מקובל, ובשפות מודרניות יותר כמו C#/VB.NET וכיוב' הוא בלתי אפשרי, אך לפעמים הוא מועיל.
 
הרשאות
 
כפי שבוודאי שמתם לב, הגדרת המחלקה מחולקת לכמה חלקים, private ו-public. ההבדל ביניהם הוא שאת חברי המחלקה שנמצאים תחת הגדרת private ניתן "לראות" רק בקוד ששייך למחלקה. ישנן ארבע הרשאות אפשריות:
public - הגדרה כללית. אל התכונות שמוגדרות כ-public ניתן לגשת מכל מחלקה שהיא.
friend - "חברים בלבד". התכונות שמוגדרות כ-friend ניתנות לגישה רק מתוך המחלקה המגדירה ומהמחלקות המוגדרות כ-friend בהגדרת המחלקה.
protected - תכונות מוגנות. לתכונות המוגנות ניתן לגשת רק מתוך המחלקה המגדירה ומתוך המחלקות שיורשות ממנה.
private - תכונות פרטיות. אל התכונות הפרטיות ניתן לגשת אך ורק מתוך המחלקה המגדירה (ולא מתוך המחלקות היורשות ממנה)