פורסם 2012 בדצמבר 1012 שנים שלוםיש לי אובייקט מסוים, שאני מייצר פעם אחת, בתוכנית הראשית.האובייקט הוא אובייקט של קלאס OneWire, שישמש אותי לתקשורת עם כמה רכיבים שונים שיושבים על באס OneWire אחד.אני מייצר אותו כך:OneWire O_OneWire(Leg_OneWire);אני רוצה להעביר O_OneWire לכמה קלאסים אחרים.אני רוצה שההפנייה לאובייקט OneWire הזה תישמר בכל אחד מהקלאסים האחרים,כלומר כולם מפנים לאותו אובייקט אחד של OneWire.כיוון שהנושא של ה-& וה-* מאד מבלבל, השאלה שלי היא בעצם:1) איך להגדיר את ה-field בקלאסים של הרכיבים, שאמורים לשמור הפנייה לאובייקט OneWire?2) איך להגדיר את הפרמטר בקונסטרקטור של הקלאסים?ולבסוף:3) איך לרשום את שורת ההשמה בתוך הקונסטרקטור, ששומרת מהפרמטר של ה-Ctor אל ה-field?תודה רבהcard
פורסם 2012 בדצמבר 1212 שנים לא ממש הבנתי מה רצית לעשות, אתה יכול לפרט יותר, אולי עם יותר קוד?בכל מקרה, אתה יכול להשתמש במצביעים (*) מתייחס לתוכן שבזיכרון ו& מתייחס לכתובת עצמה.
פורסם 2012 בדצמבר 1312 שנים מחבר כן בסוף יש שתי אפשרויות לפתרון של זה:ע"י שימוש בפוינטרים:* בהגדרה של ה-field* בהגדרה של הפרמטר של הפונקציה/Ctor שמקבלת את הפרמטר& בשליחה שלו(כשקוראים לפונקציה/Ctor)ואז בכל מקום כשרואים למתוד, משתמשים בחץ: <-מתברר שיש ב-++C גם "Reference" - זה היה חדש לי.ע"י שימוש ב-Reference:& בהגדרה של ה-field& בהגדרה של הפרמטר של הפונקציה/Ctor שמקבלת את הפרמטר[כלום] בשליחה שלו(כשקוראים לפונקציה/Ctor)ואז בכל מקום כשרואים למתוד, משתמשים כרגיל, בנקודה: .בחרתי בסוף ב-Reference.
פורסם 2012 בדצמבר 1312 שנים אם אני מבין נכון, אתה רוצה ליצורInstance חדש בכל פעם שאתה שולח את האובייקט בפרמטר.זה מאד לא Object Oriented...תממש את clone(), הווה אומר יצירת אובייקט חדש והשמה של כל הType-ים הבסיסיים בוfoo clone() {temp = foo()temp.x = this.xtemp.y = this.y }ואז את הInstance שיצר Clone שלח כאובייקט
פורסם 2012 בדצמבר 1312 שנים מחבר אם אני מבין נכון, אתה רוצה ליצורInstance חדש בכל פעם שאתה שולח את האובייקט בפרמטר.לא..האובייקט קיים פעם אחת..וכולם צריכים להשתמש באותו אובייקט, הוא לא צריך להשתכפל.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.