ABA


"צריך מספר הסברים בתיכנות מונחה עצמים"
גירסת הדפסה        
קבוצות דיון פיתוח, תיכנות ובניית אתרים נושא #7713 מנהל    סגן המנהל    מפקח   Winner    צל"ש   מומחה  
אשכול מספר 7713
zeevlevi

   12:49   06.01.04   
אל הפורום  
  צריך מספר הסברים בתיכנות מונחה עצמים  
 
   אז ככה אני צריך הסברים למושגים הבאים :
-העמסת פונקציות
-העמסת אופרטורים
-הורשה
-polymorphism
-TEMPLATES
- EXCEPTIONS


תודה מראש אנשים יקרים !


                                שתף        
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

  האשכול     מחבר     תאריך כתיבה     מספר  
  על כל אחד אפשר לכתוב ספר dryice 06.01.04 14:55 1
     תודה רבה על התגובה... כנס רגע : zeevlevi 06.01.04 14:57 2

       
dryice

   14:55   06.01.04   
אל הפורום  
  1. על כל אחד אפשר לכתוב ספר  
בתגובה להודעה מספר 0
 
   ערכתי לאחרונה בתאריך 06.01.04 בשעה 14:57 בברכה, dryice
 
ואילו ממש על קצה המזלג:

-העמסת פונקציות: כאשר יש לנו שני פונקציות באותו שם הנבדלות
זאת מזאת בפרמטרים שהן מקבלות ו/או בערך ההחזרה שלהן.
(ב++C אסור ליצור פונקציות הנבדלות רק בטיפוס ערך החזרה, משום
שהגזירה מתבססת על דקדוק חסר הקשר, לא ניתן לפתור את הambiguity)
בהורשה לעיתים גם משתמשים במונח העמסה, בשביל להסביר Overriding מה שיכול ליצור בלבול עם המונח המדויק יותר להעמסה
Overloading

-העמסת אופרטורים: אותו דבר כמו לגבי פונקציות כלליות אלא לגבי
פונקציות מיוחדות שהן גם אופרטורים כמו למשל אופרטור החיבור+
או אופרטור הכפל *, אלו הן פונקציות לכל דבר ועל כן שפות
כמו ++C מאפשרות להעמיס אותן, לכתוב אופרטור כפל משלי,
הרבה פעמים משתמשים במונח העמסת אופרטורים גם כאשר כותבים
רק אופרטור אחד מכל סוג.

-הורשה: בתכנות מונחה עצמים לכל טיפוס הנקרא מחלקה, יש אוסף
של תכונות, יש לו אלמנטים של מידע הקרויים data members
ויש פונקציות הקשורות עליו הנקראים מתודות או member functions
ישנה אפשרות להגדיר מחלקה חדשה על סמך מחלקה קודמת, כך
שהיא תהיה דומה לה, ותירש ממנה את כל התכונות הנ"ל המתודות
והמשתנים הפנימיים. למחלקה החדשה יכולים להיות תכונות נוספות
וכן אפשר יהיה לשנות תכונות קודמות overriding ע"י להגדיר
מחדש פונקציות שכבר הוגדרו לעיל. יש שפות שמאפשרות לרשת מנשק
בנפרד מהמימוש יש שפות שעם יורשים המנשק יורשים גם המימוש
אלא אם כן דורסים אותו(overriding). ב++C יש 3 סוגי הורשה
הנפוצה שבהן הורשת public מבטאת את היחס is a כלומר אוביקטים
מהמחלקה היורשת הם בעצם גם אוביקטים מהמחלקה האם, ויכולים
לתפקד ככאלו.

-polymorphism: או בעברית רב-צורניות, זאת היכולת לגרום לקטע
קוד אחד לתפקד במגוון דרכים שונות ובסיטואציות שונות.
הורשה וtemplates הם שני אמצעים להשגת רב צורניות.

-templates: או בעברית תבניות, זאת דרך לכתוב קטע קוד גנרי
שיעבוד עבור מגוון מחלקות שונות או קבועים שונים, ולו רק
שלמחלקות הנדרשות יוגדרו המתודות שיש בהם שימוש. ניתן להגדיר
מתודה או מחלקה כtemplate עבור כל שימוש שונה בתבנית למעשה
נוצר עותק חדש של הקוד והוא מקומפל מחדש, זה יכול להצליח
או לא להצליח. ההסבר הנ"ל לגבי תבניות נכון ל++C בשפות אחרות
זה נראה אחרת קצת.

-Exceptions: או בעברית חריגות, שיטה שנועדה לטיפול בשגיאות
אולם יש המשתמשים בה למטרות אחרות. חריגה יכולה להזרק ולהתפס.
משתמשים בזה בשביל לזהות ארוע במקום אחד בקוד ואילו לטפל בו
באחת מהפונקציות הקוראות כאשר לא צריך לדעת איזו מהם תטפל
בחריגה ואיך. מגדירים על בלוק מסוים שעשויה להתבצע בו חריגה
ומגדירים עבור סוגי חריגות שונים את הטיפול בהם. כאשר
מזהים את החריגה זורקים חריגה מעלה, כלומר רצף ההרצה הרגיל
של התוכנית נתקע והחריגה מטיילת לה מעלה במעלה מחסנית הקריאות
עד אשר נמצא הבלוק הקולט שיודע לטפל בה. אם לא נמצא כזה
התוכנית תסתיים.

DRYICE

נ.ב
הקשר בין חריגות לOOP נשגב מעיני, חריגות יש אפילו בLISP
שהיא שפת הדגל לשפות פונקציונליות, ממש לא OO.


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד
zeevlevi

   14:57   06.01.04   
אל הפורום  
  2. תודה רבה על התגובה... כנס רגע :  
בתגובה להודעה מספר 1
 
   יש איזה ספר מומלץ בעברית לנושא ?


                                                         (ניהול: מחק תגובה)
מכתב זה והנלווה אליו, על אחריות ועל דעת הכותב בלבד

תגובה מהירה  למכתב מספר: 
 
___________________________________________________________________

___________________________________________________________________
למנהלים:  נעל | תייק בארכיון | מחק | העבר לפורום אחר | מחק תגובות | עגן אשכול
       



© כל הזכויות שמורות ל-רוטר.נט בע"מ rotter.net