View Full Version : توضیح بخش هایی از کد برنامه
asal71
جمعه 23 خرداد 1393, 23:13 عصر
سلام دوستان
من این کد رو نیاز دارم که یکی بهم توضیح بده
[/PHP][/CODE][CODE]
~memory() {
if (ptr)
delete ptr;
}
محمد فدوی
جمعه 23 خرداد 1393, 23:44 عصر
تیکه تیکه بررسیش میکنم:
~memory() {
احتمالا یک کلاس در برنامتون دارین به اسم memory. علامت ~ مشخص کننده تابع مخربه. برخلاف تابع سازنده که موقع ساخته شدن شیء فراخوانی میشه این تابع موفق از بین رفتن شیء و پاک شدنش از رم فراخوانی میشه.
if (ptr)
delete ptr;
احتمالا توی برنامتون متغیر ptr یک اشاره گر هست که بصورت دینامیک مقدار دهی شده. مثلا اینجوری:
ptr = new int[10];
// Or
ptr = new char[32];
وقتی یک اشاره گر بصورت دینامیک مقداردهی میشه دیگه کامپایلر اونو هیچوقت از حافظه پاک نمیکنه و خود ما باید وقتی کارمون باش تموم شد پاکش کنیم. ابتدا توی شرط چک میکنه که آیا ptr مقدارش NULL هست یا نه؟! اگه NULL باشه معنیش اینه که قبلا پاک شده. اگرم NULL نباشه خط بعد اجرا میشه که ptr رو از حافظه پاک میکنه.
موفق باشید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.