שאלה בנוגע לבנאי PolygonContainer(PolygonContainer other)

מנהלים: TA_nimrod, TA_Igor, TA_Adi

שלח תגובה
eliranyo
הודעות: 25
הצטרף: 17:24 02/12/2009

שאלה בנוגע לבנאי PolygonContainer(PolygonContainer other)

שליחה על ידי eliranyo » 22:45 22/12/2009

בבנאי PolygonContainer(PolygonContainer other)
עליי ליצור העתקים חדשים של הפוליגונים שנמצאים בother או פשוט להצביע על הפוליגונים שנמצאים בother?
תודה :)

רפי_כהן_TA
הודעות: 168
הצטרף: 16:38 05/11/2008

Re: שאלה בנוגע לבנאי PolygonContainer(PolygonContainer other)

שליחה על ידי רפי_כהן_TA » 09:15 23/12/2009

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

jinj
הודעות: 9
הצטרף: 12:41 23/11/2009

Re: שאלה בנוגע לבנאי PolygonContainer(PolygonContainer other)

שליחה על ידי jinj » 23:11 24/12/2009

אממ אתה לא סותר את מה שכתוב בעבודה? - ציטוט:
public PolygonContainer(PolygonContainer other)
"העתקה העמוקה" - אוסף הצורות של האובייקט הקיים ישתכפל באובייקט החדש כסדרן. "

olegkap
הודעות: 16
הצטרף: 17:58 21/10/2009

Re: שאלה בנוגע לבנאי PolygonContainer(PolygonContainer other)

שליחה על ידי olegkap » 12:18 25/12/2009

גם לדעתי חייב העתקה עמוקה, אחרת גם הבדיקות שלכם לא עוברות

Fogpiskalo
הודעות: 59
הצטרף: 20:03 25/10/2009

Re: שאלה בנוגע לבנאי PolygonContainer(PolygonContainer other)

שליחה על ידי Fogpiskalo » 19:52 29/12/2009

אז... מה התשובה? :shock:

Shahar
הודעות: 160
הצטרף: 16:49 29/10/2009

Re: שאלה בנוגע לבנאי PolygonContainer(PolygonContainer other)

שליחה על ידי Shahar » 21:15 29/12/2009

אפשר לגשת לפוליגונים רק עם polygonAt, שמחזיר עותק של הפוליגון.
אז אין אפשרות לעשות shallow copy

בר כהן
הודעות: 146
הצטרף: 18:24 22/10/2009

Re: שאלה בנוגע לבנאי PolygonContainer(PolygonContainer other)

שליחה על ידי בר כהן » 21:30 29/12/2009

Shahar כתב:אפשר לגשת לפוליגונים רק עם polygonAt, שמחזיר עותק של הפוליגון.
אז אין אפשרות לעשות shallow copy
אפשר, מכיוון שאתה מעתיק אוביקט מאותו מחלקה יש לך גישה לשדות הפרטיים שלו, אז אתה יכול לעשות השמה ישירה של המצביע, בלי שימוש בפונקציות שלו.

Shahar
הודעות: 160
הצטרף: 16:49 29/10/2009

Re: שאלה בנוגע לבנאי PolygonContainer(PolygonContainer other)

שליחה על ידי Shahar » 22:04 29/12/2009

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

בר כהן
הודעות: 146
הצטרף: 18:24 22/10/2009

Re: שאלה בנוגע לבנאי PolygonContainer(PolygonContainer other)

שליחה על ידי בר כהן » 22:18 29/12/2009

תאמין לי שאפשר, ואני כותב ככה וזה עובד :)
בהתחלה גם אני הבנתי שזה המשמעות של private, אבל זה מורחב יותר.
ככה שאם אתה מקבל למחלקת point אוביקט אחר שהוא point אתה יכול לגשת ישירות לשדות ולשיטות שלו.
אתה מוזמן לבדוק :shock:

Shahar
הודעות: 160
הצטרף: 16:49 29/10/2009

Re: שאלה בנוגע לבנאי PolygonContainer(PolygonContainer other)

שליחה על ידי Shahar » 22:21 29/12/2009

O_o
מוזר...

יצאתי אידיוט, כי כשבדקתי את זה, לפני ההודעה הקודמת, הדפסתי את other.polygons, כש-i לא היה מוגדר :S
אז קבלתי שגיאה.

אכן עובד:)

Fogpiskalo
הודעות: 59
הצטרף: 20:03 25/10/2009

Re: שאלה בנוגע לבנאי PolygonContainer(PolygonContainer other)

שליחה על ידי Fogpiskalo » 23:26 29/12/2009

זה לא כזה מוזר כשחושבים על זה - הרעיון של הכמסה הוא שכמישהו שמשתמש בשיטה מבחוץ הוא לא יוכל להתעסק לה עם הבפנוכו ולעשות שטויות (כמו שבוינדוז אחריי התקנה, הוא 'מסתיר' את הקבצים שנמצאים ב-program files...)
אבל כשאתה מתעסק מבתוך המחלקה באובייקט ששייך למחלקה אתה לא עושה את זה בתור מישהו מבחוץ, אתה עושה את זה בתור מי שיודע איך הדברים עובדים - במילים אחרות, אין הגיון בלהסתיר דברים מעצמך! אתה מסתיר אותם רק מהטמבלים שיבואו אחריך...

Fogpiskalo
הודעות: 59
הצטרף: 20:03 25/10/2009

Re: שאלה בנוגע לבנאי PolygonContainer(PolygonContainer other)

שליחה על ידי Fogpiskalo » 23:33 29/12/2009

בכל אופן, נראה לי שהדרישה ל-deep copy במקרה של polygonContainer היא שהמערך של הפוליגונים שבתוך האובייקט יועתק עמוקות, לא הפוליגונים. כלומר, אם יש לך PolygonContainer בשם pc1, ואתה יוצר ממנו העתק pc2, אז pc1.arrayOfPolygons ו-pc2.arrayOfPolygons יהיו זהים מבחינת התוכן, אבל יצביעו על כתובות שונות. מה שזה *לא* אומר זה שצריך לשכפל את הפוליגונים עצמם, כי כמו שנאמר גם בהוספה אנחנו לא משכפלים אותם. אין צורך שבעולם שלנו יתקיימו שני אובייקטים שונים שמייצגים את אותו הפוליגון בדיוק. מספיק אובייקט אחד, שיכול להופיע כמה פעמים שנרצה בכל מערך שנרצה.

שלח תגובה

חזור אל “- מבוא למדעי המחשב 2010”