מערכת טיפוסים – הבדלי גרסאות

תוכן שנמחק תוכן שנוסף
מאין תקציר עריכה
שורה 39:
כך הטיפוס של הפרמטר לפונקציה len הוא "אובייקט שעבורו מוגדרת המתודה __len__ כנדרש". טיפוסיות דינמית משיגה [[פולימורפיזם]] פרמטרי מקסימלי. יש לשים לב, עם זאת, שהנחת היסוד היא שמתודות בעלות שם זהה מתנהגות בצורה דומה. אובייקט עשוי לכלול מתודה בעלת שם מתאים בדרך מקרה, כאשר המימוש שלו מבצע פעולה שונה לחלוטין מזו המצופה בפונקציה. שגיאות מסוג זה הן נדירות, אך קשות מאוד לאיתור.
 
דוגמה להתנהגות המזכירה טיפוסיות ברווז אך איננה דינמית אלא סטטית היא [[תכנות גנרי]] בשפת ++C. ניתן ליצור מחלקה בעזרת טיפוס מסוים כפרמטר, כל עוד כל המתודות שבשימוש לגבי הטיפוס הזה באמת שייכות אליו. זאת אף אם קיימות מתודות (שהן בעצמן template) המבצעות פעולות שאינן תקינות לגבי הטיפוס - כל עוד לא משתמשים בהן בפועל. הבדיקה הזאת מתרחשת בזמן הידור.
 
== חוזק ==