C++/פונקציות: הבדלים בין גרסאות בדף

תוכן שנמחק תוכן שנוסף
Yosi (שיחה | תרומות)
אין תקציר עריכה
 
אין תקציר עריכה
שורה 34:
עם למשל נקרא לפונקציה sum() שיצרנו קודם עם שני פרמטרים מסוג שונה מהמוזכרים בקוד, יתרחש מיד ניסיון המרה של המהדר. במקרה שלנו, עם נקרא לפונקציה עם פרמטרים מסוג float, המהדר ימיר אותם לdouble ותקרא הגירסא השניה של sum().
כמובן שכזאת המרה עלולה שלא להצליח, עם למשל מדובר במצביע שנשלח לפונקציה sum(), אז המהדר יתן הודעת שגיאה.
עניין חשוב יותר הוא המצב הבא:<br />
עם לפונקציה שלנו למשל, נשלחים שני פרמטרים שונים, אחד double והשני int, איזו גירסה תיקרא?<br />
התשובה החד משמעית לכך היא שאף אחת מהן, העניין יצור בלבול אצל המהדר באשר לפרמטרים.<br />
double יכול ליהיות מומר לint ואז תיקרא הגירסה הראשונה, וint יכול ליהיות מומר לdouble, במקרה כזה תיקרא הגירסה השניה. מצב כזה יכול לקרות לעתים קרובות, לכן כדאי לשים לב לכך.