تصویری: چگونه تخصیص پویا یک شی را در C++ محدود کنم؟
2024 نویسنده: Lynn Donovan | [email protected]. آخرین اصلاح شده: 2023-12-15 23:46
بر اساس پشته اشیاء به طور ضمنی توسط مدیریت می شوند C++ کامپایلر وقتی از محدوده خارج شوند نابود می شوند و اشیاء به صورت پویا تخصیص داده شده است باید به صورت دستی آزاد شود، در غیر این صورت با استفاده از عملگر حذف حافظه نشتی رخ می دهد. C++ از روش جمعآوری خودکار زباله که توسط زبانهایی مانند جاوا و C# استفاده میشود، پشتیبانی نمیکند.
با در نظر گرفتن این موضوع، چگونه تخصیص پویا یک شی را در C++ محدود کنم؟
بر اساس پشته اشیاء به طور ضمنی توسط مدیریت می شوند C++ کامپایلر وقتی از محدوده خارج شوند نابود می شوند و اشیاء به صورت پویا تخصیص داده شده است باید به صورت دستی آزاد شود، در غیر این صورت با استفاده از عملگر حذف حافظه نشتی رخ می دهد. C++ از روش جمعآوری خودکار زباله که توسط زبانهایی مانند جاوا و C# استفاده میشود، پشتیبانی نمیکند.
علاوه بر این، آیا میتوانیم حافظه را برای اشیا به صورت پویا در CPP اختصاص دهیم؟ تخصیص حافظه پویا برای اشیاء ما می توانیم همچنین تخصیص دینامیک اشیا . مانند ما بدانید که Constructor یک تابع عضو از یک کلاس است که هر زمان یک کلاس جدید فراخوانی می شود هدف - شی از آن کلاس ایجاد می شود. Destructor همچنین یک تابع عضو کلاس است که هر زمان فراخوانی می شود هدف - شی از محدوده خارج می شود
مردم همچنین می پرسند، چگونه می توان یک کلاس C++ ساخت که اشیاء آن فقط به صورت پویا قابل تخصیص باشد؟
- نمی توان انجام داد. تنها کاری که میتوانید انجام دهید این است که سازنده را خصوصی کنید و یک کارخانه ثابت داشته باشید که نمونه جدیدی از کلاس را بسازد. –
- ایجاد چنین کلاسی مطمئناً یک مشکل است.
- این یک نیاز بسیار عجیب است.
چرا باید مقداردهی اولیه اشیا را به صورت پویا انجام دهیم؟
این اولیه سازی دینامیک اشیا به معنی به مقداردهی اولیه اعضای داده کلاس هنگام ایجاد هدف - شی . چه زمانی ما میخواهیم برای ارائه مقادیر اولیه یا پیش فرض به اعضای داده در حین ایجاد هدف - شی - نیاز داریم برای استفاده مقداردهی اولیه دینامیکی اشیا.