עבור לתוכן

עזרה בC#-עצם מורכב

Featured Replies

פורסם

טוב בשיעורי בית קיבלתי שאלה של לכתוב עצם A

העצם חייב להכיל

פעולת בונה שמקבלת פרמטר

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

פעולת בונה מעתיקה

עכשיו השאלות-

1.מה זה פעולת בונה מעתיקה?

2.שואלים מה המנגנון שמאפשר הימצאות של יותר מפעולת בונה אחת... מהו?

פורסם
  • מחבר

אוקי אבל השאלה ה2 החשובה יותר עדיין לא נענתה

בתכלס אני צריך לדעת איך לשים מספר בנאים בעצם אחד ואיך הם פועלים בעת יצירת עצם חדש

פורסם

1. אני מניח שהכוונה היא ל-COPY CONTRUCTOR , הכוונה היא לבנאי שמקבל כפרמטר אובייקט מאותו סוג.

2. מנגנון שקיים בשפות רבות הנקרא FUNCTION OVERLOADING.

איך שמים מספר בנאים בעצם אחד?

אז קודם כל , אתה לא שם בנאים בעצמים , אתה שם בנאיםבמחלקות.

דבר שני , בנאי זה פונקצייה כמו כל פונקציה אחרת מלבד שוני אחד , לא ניתן לקרוא לבנאי באופן מפורש.

כאשר את יוצר עצם(מופע של מחלקה) מסוים , המהדר , מאחורי הקלעים שותל שורת קוד שמפעילה

את הבנאי.

אם אתה לא מבין על מה דיברתי , תבקש מההורים שלך שיבקשו מהנהלת בית הספר שלך שיפטרו מיד

את המורה.

פורסם
  • מחבר

וואו איזו נוסטלגיה הבאת בי עכשיו...

טוב שלא אמרת את מה שידעתי מההתחלה

והעמסת פונקציה זה לא הפרמטרים ששמים לכל זימון פונקציה לפי הצורך (אני פשוט זוכר את הודעת השגיאה כאשר נתתי מספר פרמטרים לא נכון)

בכל מקרה בהנחה שיש לי 3 בנאים מסוגים שונים באובייקט אחד

האם שלושתם יפעלו אחד אחרי השני?

פורסם

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

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

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

הפונקציה שתרוץ בפועל תקבע בזמן קומפילציה בהתאם לקריאה שביצעת לפונקציה - כלומר לפי הארגומנטים ששלחת לפונקציה. הקומפיילר יזהה כך לאיזו פונקציה לקרוא בפועל.

לגבי בנאים - רק הבנאי לו קראת יופעל. אם לא קראת לשום בנאי, יופעל ה- default constructor - בנאי ברירת המחדל (שבדרך כלל פשוט לא עושה כלום).

אגב, אין לי כ"כ הרבה מושג ב#C, את כל מה שרשמתי פה אני יודע מ- ++C ו- Java ואני מניח שזה גם תקף ל- #C (אלו דברים די בסיסיים בכל שפה מונחית עצמים).

פורסם

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

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

בירושה, אם לא ציינת אחרת, הבנאי הריק של האבא ירוץ באתחול, או שאתה יכול לציין בצורה דומה למקודם איזה בנאי אתה רוצה להפעיל ע"י base במקום this.

ויש כמובן גם בנאים סטטים שנקראים פעם אחת ביצירה של אובייקט מהמחלקה.

ארכיון

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

דיונים חדשים