♨️ توضیحاتی در مورد تابع سازنده کپی (copy constructor) :
برای اینکه هنگام تعریف کلاس مقادیر یک شی از همان کلاس را در آن کپی کنید از تابع سازنده استفاده میشود.
تابعی هم نام با کلاس، بدون ورودی که هیچ مقداری را بر نمیگرداند و همان طور که گفته شد به صورت پیش فرض توسط خود برنامه فراخوانی میشود.
کامپایلر به صورت پیش فرض تابع سازنده دارد اما هنگامی که از اشارهگرها یا مقادیر پویا (dynamic) استفاده میکنید باید حتما از سازنده کپی استفاده نمایید، چرا که بدون سازنده به جای مقادیر متغیر مورد نظر تنها آدرس آن در اشاره گر جدید کپی می شود یعنی برای یک خانه حافظه دو اشارهگر خواهیم داشت (این اتفاق باعث میشود عملا دسترسی شما به خانه حافظه شی جدید التعریفتان از دسترس خارج شود و تغییرات روی شیای که از آن کپی گرفتهاید اعمال شود)
تفاوت تابع سازنده کپی با عملگر (operator) = در این است که از عملگر = در همه جای برنامه می توان استفاده کرد اما تابع سازنده در زمان تعریف شی فراخوانی می شود.
☘ کانالی برای برنامهنویسان
🆔 @WorldCode_Cpp
>>Click here to continue<<