פורסם 2005 במאי 1920 שנים שלום,אם משהו יוכל להגיד לי בבקשה את המימוש של copy constractor בשני אופנים:1. ששייך למחלקה פשוטה2. כזה שנמצא בprivet (אם הוא נראה אותו דבר כמו הפשוט או אולי יש לו הגדרה שונה.. מימוש בטח אין כלל...)תודה
פורסם 2005 במאי 1920 שנים קופי קונסטרקטור זה שם לקונסטרקטור שמקבל את אותה המחלקה כקונסט וביי רף. התפקיד שלו זה ליצור אובייקט דומה לאובייקט ששלחת לו, שאינו משתמש באוןתו שטח זיכרון. השימושים שלו בעיקר הם כאשר את מקצה זיכרון באחד המאפיינים של המחלקה. ההבדל בין זה שהוא פרייבייט הוא שרק המחלקה עצמה יכולה להשתמש בו.
פורסם 2005 במאי 1920 שנים copy constructor אמור ליצור אובייקט חדש מתוך אובייקט קיים (כשבדר"כ מדובר בשכפול המידע).הוא בסה"כ עוד constructor שבתור פרמטר לוקח אובייקט מאותו סוג, או סוג דומה. ולכן זה לא משנה אם הוא private, protected או public - אם מגדירים אותו, חייבים לממש אותו.אם לא הגדרת copy constructor בעצמך, הקומפיילר ייצר אחד כזה, שמעתיק את הערכים של כל המשתנים. (זאת נקראת העתקה רדודה (shallow copy) כי מצביעים מועתקים כמו שהם (אם האובייקט הראשון החזיק מצביע לאנשהו, גם האובייקט המועתק יצביע לאותו מקום).זאת הסיבה, שאם האובייקט שלך 'מכיל' מידע ע"י מצביע, ה- copy constructor צריך לדאוג לשכפל את המידע הזה ולא להעתיק את המצביע.אפשר להגדיר copy constructor שהוא private אם לא רוצים שיהיה אפשר ליצור מופעים נוספים של האובייקט (אז בדר"כ אין constructor שהוא public ויוצרים את האובייקט ע"י פונקציה סטטית - זה design pattern שנקרא singleton ומשתמשים בו די הרבה)
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.