C++/פולימורפיזם: הבדלים בין גרסאות בדף
תוכן שנמחק תוכן שנוסף
אין תקציר עריכה |
אין תקציר עריכה |
||
שורה 5:
**
http://he.wikipedia.org/wiki/%D7%A4%D7%95%D7%9C%D7%99%D7%9E%D7%95%D7%A8%D7%A4%D7%99%D7%96%D7%9D_%28%D7%AA%D7%95%D7%9B%D7%A0%D7%94%29
פולימורפיזם (תוכנה)
מתוך ויקיפדיה, האנציקלופדיה החופשית
שורה 31 ⟵ 33:
למשל אף שיש מרחק רב בין מנוע של מעבורת חלל לבין מנוע של מכסחת דשא, באמצעות קונספט זה שיש בו הפשטה מושגית (מנוע יוגדר כמכונה הממירה אנרגיה לעבודה מכנית), אפשר להתייחס אליהם ואל מגוון האפשרויות שביניהם (מנועים של מטוס קרב סילוני, מטוס בואינג, מטוס קל, אוניה, טנק, משאית, מכונית, אופנוע, קטנוע), מתוך מחלקה תכנותית אחת, תוך ביצוע התאמות לכל אחד מהמנועים על פי המאפיינים הייחודיים שלו. גישה זו שיוצאת מהאבסטרקט ומגיע אל הקונקרטי ביותר (למשל בתיאור מפורט ומלא של מנוע מכונית מדגם מזדה 3), מונעת את הצורך לכתוב מחדש מחלקות נפרדות, עבור כל אחד ואחד מטיפוסי המנועים השונים, והיישומים המעשיים שכל כל אחד ואחד מהם (שהרי יש מנועי 4 פעימות של חברות שונות), ומסירה מהתכנות את הסרבול של הכתיבה החוזרת ונשנית ובכך הופכת אותו לריכוזי, יעיל ואלגנטי.
מנגנונים הרווחים ברב צורתיות, הם:
שורה 421 ⟵ 43:
* העמסת אופרטורים, שבו אופרטור מסוים שומר על צורתו הלוגית, אך מקבל מכניזם פנימי שונה בתוך אובייקט. למשל אופרטור + שנועד לחבר מספרים, במחלקה של מחרוזות מקבל יכולת שרשור, ובמחלקה של מערכים יכול לקבל יכולת לחבר בין שני מערכים.
כדי להדגים את הכוח של המנגנון, אפשר לחשוב על דוגמה שכיחה מחיי היום יום, אלגוריתם להחלפת גלגל ברכב:
|