עבור לתוכן

#C שאלה

Featured Replies

פורסם

יש לי מחלקה IFly שהגדרתי אותה interface. ממנה יורשות שלוש מחלקות: מטוס, ציפור ודבורה. כל מחלקה מממשת פונקציה

1. תעופה (אם data member speed נמצא מעל מספר מסוים)

2. נחיתה (אם speed מאופס)

-> שתי הפונקציות מחזירות מחרוזת האם התעופה / הנחיתה הצליחו.

מנסה לבנות שתי פונקציות :

1. פונקציה שמקבלת מספר (1 או 2 או 3) ולפיו יוצרת אוביקט חדש בהתאמה (1 = new מטוס, 2 = new ציפור, 3 = new דבורה)

הפונקציה תחזיר אובייקט מסוג IFly. (עושים switch case לפי הארגומנט שהפונקציה קיבלה ומצהירים על אוביקט חדש?)

2. פונקציה שמקבלת מספר, וערך מהירות והיא קוראת לפונקציה 1 יוצרת אוביקט חדש ומאתחלת את המהירות שלו -> איך עושים את זה?

פורסם

ב class של כל אחד שימי property למשתנה מהירות.

ב class שבו את עובדת שימי משתנה זמני שיקבל כל הזמן את הערך של המהירות (שיתחיל ב 1- )

בפונקציה 1 באמת עושים switch ואז יוצרים את האובייקט. וגם מוסיפים בדיקה האם המשתנה הזמני של מהירות גדול מ 0 אם כן אז ה DM בתוך ה Class שווה למשתנה הזמני ואחרי זה צריך להחזיר את המשתנה ל 1- בשביל הפעם הבאה.

בפונקציה 2 דואגים שהפונקציה תשנה את הערך של המשתנה הזמני ותפעיל את פונקציה 1.

וזה הכל.... די פשוט

פורסם
  • מחבר

די פשוט- אבל הסתבכתי...

עשיתי את פונקציה 1 היא מחזירה לי אוביקט-> לאן? איך אני משתמשת בו?

פורסם

למה שהפונקציה תחזיר אובייקט? לא אמרת שהיא צריכה להחזיר אובייקט...

אם זה המקרה אז את צריכה להחזיר את האובייקט ולבדוק את ה type שלו כדאי לדעת אם הוא ציפור מטוס או דבורה...


object o = function1(); // צריך לבוא פה הפרמטר של המספר שרצית שהפונקצה תיצור ממנו אובייקט
if(o.type == typeof(plane)
{
plane p= (plane)o;
}
else if(o.type == typeof(bee)
{
bee b = (bee)o;
}
else
{
bird bi = (bird)o;
}

פורסם

הפונקציה צריכה להחזיר אובייקט מסוג IFly, לא מסוג object.

פורסם

צודק, לא ראיתי שהיא אמרה את זה בפוסט הראשון.. בכל מקרה אם זה מחזיר אובייקט מסוג Ifly אפשר לבצע את כל מה שהגדרת ב interface (מן הסתם) כך שאין הבדל

פורסם
  • מחבר

פונקציה שמקבלת מספר (1 או 2 או 3) ולפיו יוצרת אוביקט חדש בהתאמה (1 = new מטוס, 2 = new ציפור, 3 = new דבורה)

הפונקציה תחזיר אובייקט מסוג IFly

<מצטערת על החוסר בהירות אני מסתבכת בעצמי>

איך אני משתמשת במה שהפונקציה מחזירה לי?

פורסם

את מקבלת אובייקט מסוג IFly, ובעזרתו את יכולה להשתמש במתודות שהוגדרו בממשק. זה פולימורפיזם.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים