1 view
Skip to first unread message

נופר בנימיני

unread,
Feb 18, 2012, 11:05:17 AM2/18/12
to 83-...@googlegroups.com
היי מתן,

היה במבחן שאלה על אופרטורים מהסוג
r1+2
האם יתקמפל? r1 הוא אובייקט של מחלקה

בתוך המחלקה ממומשים אופרטור +, אחת const ואחת רגילה וגם אופרטור התמרה לint.
התשובה היא כמובן לא, אך יש שם משהו שלא מובן לי

"

הקוד לא יתקמפל, נקבל שיש שגיאה: 4 overload עבור הביטוי  r1+2 שהם:

1.       (Rational)r1 + (int)2 – פונקציית friend של המחלקה שמממשת +(מספר 6).

2.       (Rational)r1 + (Rational)2 – מתודה של המחלקה שמממשת + (מספר 5).

3.       (const Rational)r1 + (Rational)r2 – מתודה cosnt שמממשת + (מספר 4).

4.       (int)r1 + (int)2 – מתודת + בין שני int


"
למה אוברלואוד מספר 3 אמור לקרות? r1 הוא אובייקט ידוע שהוגדר במיין :      Rational r1 (1, 2);
r1 הוא מלכתחילה לא משתנה קונסטי, למשל שיומר לאחד וישתמש במתודה הקונסטית?


תודה מראש,
נופר
(אם מישהו אחר יוכל לענות זה גם יהיה נחמד...)

oded pinchover

unread,
Feb 18, 2012, 11:46:28 AM2/18/12
to 83-223
הוא יכול "להבין" את השורה בצורה הזאת כי אין לו שום פונקציה שתתאים
בדיוק שימי לב שבסעיף שלפני זה כל שורה יש לו פונקציה אחת בדיוק
שמתאימה בדיוק לטקסט ולכן אין לו שגיאה במקרה פה - הוא לא יודע בדיוק
איך לקרוא את זה כי אין לו שום פונקציה שתתאים בול - אם תרצי - אין לו
פונקציה חד חד ערכית שתתאים לטקטס אר שתיים ועוד שתיים אז הוא יתחיל
לחפש את כל הפונקציות שעשויות להתאים היחיד שאני לא מבין שם זה
הראשונה זה בכלל לא מתאים לפונקציית פרינד שבשורה שש...הפריינד שבשורה
שש מקבל אינט ואז רציונל וזה ההפיך ממה שכתוב פה...אז לגבי הראשון אני לא
מבין אותו כל השאר הם אופציות אפשריות...ובגלל שיש יותר מאחת אז הוא לא
יודע במי לבחור...אם יש לך הסבר על הראשון אני אשמח לשמוע

oded pinchover

unread,
Feb 18, 2012, 12:58:19 PM2/18/12
to 83-223
יש הסבר למישהו??
Reply all
Reply to author
Forward
0 new messages