פורסם 2008 במרץ 1217 שנים טוב בשיעורי בית קיבלתי שאלה של לכתוב עצם Aהעצם חייב להכילפעולת בונה שמקבלת פרמטרפעולת בונה ללא פרמטרים שמאתחלתפעולת בונה מעתיקהעכשיו השאלות-1.מה זה פעולת בונה מעתיקה?2.שואלים מה המנגנון שמאפשר הימצאות של יותר מפעולת בונה אחת... מהו?
פורסם 2008 במרץ 1217 שנים מחבר אוקי אבל השאלה ה2 החשובה יותר עדיין לא נענתהבתכלס אני צריך לדעת איך לשים מספר בנאים בעצם אחד ואיך הם פועלים בעת יצירת עצם חדש
פורסם 2008 במרץ 1217 שנים 1. אני מניח שהכוונה היא ל-COPY CONTRUCTOR , הכוונה היא לבנאי שמקבל כפרמטר אובייקט מאותו סוג.2. מנגנון שקיים בשפות רבות הנקרא FUNCTION OVERLOADING.איך שמים מספר בנאים בעצם אחד?אז קודם כל , אתה לא שם בנאים בעצמים , אתה שם בנאיםבמחלקות.דבר שני , בנאי זה פונקצייה כמו כל פונקציה אחרת מלבד שוני אחד , לא ניתן לקרוא לבנאי באופן מפורש.כאשר את יוצר עצם(מופע של מחלקה) מסוים , המהדר , מאחורי הקלעים שותל שורת קוד שמפעילהאת הבנאי.אם אתה לא מבין על מה דיברתי , תבקש מההורים שלך שיבקשו מהנהלת בית הספר שלך שיפטרו מידאת המורה.
פורסם 2008 במרץ 1217 שנים מחבר וואו איזו נוסטלגיה הבאת בי עכשיו...טוב שלא אמרת את מה שידעתי מההתחלהוהעמסת פונקציה זה לא הפרמטרים ששמים לכל זימון פונקציה לפי הצורך (אני פשוט זוכר את הודעת השגיאה כאשר נתתי מספר פרמטרים לא נכון)בכל מקרה בהנחה שיש לי 3 בנאים מסוגים שונים באובייקט אחד האם שלושתם יפעלו אחד אחרי השני?
פורסם 2008 במרץ 1217 שנים לגבי העמסת פונקציות:לכל פונקציה (או מתודה) יש מה שנקרא חתימה. החתימה מורכבת משם הפונקציה, וטיפוס, סדר, ומספר הפרמטרים שלה. טיפוס ההחזרה *אינו* חלק מהחתימה של הפונקציה.כאשר אתה מגדיר שתי פונקציות עם אותו שם וחתימה שונה (כלומר סדר, טיפוס או כמות פרמטרים שונה) עשית overloading - העמסה.הפונקציה שתרוץ בפועל תקבע בזמן קומפילציה בהתאם לקריאה שביצעת לפונקציה - כלומר לפי הארגומנטים ששלחת לפונקציה. הקומפיילר יזהה כך לאיזו פונקציה לקרוא בפועל.לגבי בנאים - רק הבנאי לו קראת יופעל. אם לא קראת לשום בנאי, יופעל ה- default constructor - בנאי ברירת המחדל (שבדרך כלל פשוט לא עושה כלום).אגב, אין לי כ"כ הרבה מושג ב#C, את כל מה שרשמתי פה אני יודע מ- ++C ו- Java ואני מניח שזה גם תקף ל- #C (אלו דברים די בסיסיים בכל שפה מונחית עצמים).
פורסם 2008 במרץ 1217 שנים מה זה בנאים מסוגים שונים, אתה מתכוון לחתימות שונות של בנאים. בזמן יצירת אובייקט אתה יכול ליצור אותו ע"י קריאה רק לאחד מהבנאים שלו (כאשר מה שמבדיל אותם זה החתימה שלהם). למחלקה ללא בנאים תמיד יש בנאי ללא פרמטרים ריק.כדי לקרוא לבנאי אחד מתוך בנאי אחר, אתה צריך לכתוב אחרי הגדרת הבנאי ולפני התוכן שלו נקודתיים ואז this והפרמטרים של הבנאי שאתה רוצה להריץ בזמן האיתחול.בירושה, אם לא ציינת אחרת, הבנאי הריק של האבא ירוץ באתחול, או שאתה יכול לציין בצורה דומה למקודם איזה בנאי אתה רוצה להפעיל ע"י base במקום this.ויש כמובן גם בנאים סטטים שנקראים פעם אחת ביצירה של אובייקט מהמחלקה.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.