עבור לתוכן

איך מאתחלים ערך למשתנה במחלקה כאשר מקבלים פרמטר עם אותו שם?

Featured Replies

פורסם

נניח יש לי מחלקה Ball והשיטה הבונה שלה מוגדרת כך:

Ball:Ball(float posX, float posY)

והמאפיינים של המחלקה הם גם:

posX ו-posY

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

אם אני לא טועה ב-JAVA משתמשים במילה this כדי לעשות את זה..

תודה מראש!

פורסם

this->posX = posX;

מומלץ לתת לשמות משתנים שנמצאים בתוך מחלקה שמות שמתחילים בפרפיקס m_

example:

m_posX

m_done;

וכו'.

פורסם
  • מחבר

אחלה תודה ואיך אני עושה קונסטרקטור שקורא לקונסטרקטור אחר?

ניסיתי ככה ולא עובד:


Ball::Ball()
{
Ball(0,0);
}

לפי מה שהבנתי אי אפשר לעשות כמו בג'אווה קטנסראקטור אחד שקורא לאחר אז פשוט מוסיפים עוד שיטה נניח Init והשיטות הבונות קוראות לה.

פורסם

ניתן גם להשתמש בשורת אתחול(רווי סכנות, ראה פוסט שנמצא עוד בעמוד הזה :-*) כלומר

Ball::Ball() : Lebron(32,5,8){}

פורסם

אז ככה:

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

בד"כ הפתרון הוא מה ש-MasterDK הציע, או לחילופין לתת שמות פרמטרים קצת שונים (נניח להוסיף _ בהתחלה).

על מנת לקרוא לקונסטרקטור אחר מתוך הקונסטרקטור, צריך לעשות ככה:

Ball::Ball() : Ball(0,0)
{
}

ארכיון

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

דיונים חדשים