Copy constructor

בנאי העתקה, פונקציה שמייצרת עותק של עצם קיים. העתק = יצירת אותו דבר חדש.

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

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

בשפות מסוימות חייבים גם בנאי ברירת־מחדל (Default Constructor) כשמגדירים בנאי העתקה. בבנאי העתקה משתמשים בדרך‑כלל בהתייחסות לקבוע (const reference) כדי לא לשנות את המקור.

ב־.NET וב־Java יש פונקציה בשם Clone. היא מעתיקה ברירת מחדל באופן רדוד. אפשר לשנות אותה כדי להעתיק עמוק.

class CPerson { ... } // דוגמה שמראה העתקת שדות ומצביע לאם

תגובות גולשים

התגובה תפורסם באתר לאחר אישור המערכת

עדיין אין תגובות. היה הראשון להגיב!