۳ مطلب با کلمه‌ی کلیدی «allocate» ثبت شده است

تابع مخرب (destructor)

سلام!

موضوع این جلسه، تابع مخرب یا destructor است.

قبل از این جلسه با مفهوم constructor آشنا شدیم و دانستیم که constructor تابعی است که وقتی یک object از یک class بسازیم، صدا زده می شود و می توانیم در آن مقداردهی های اولیه را انجام دهیم.

حالا destructor تابعی است که وقتی یک object حذف می شود، صدا زده می شود. حالا این سوال پیش می آید که یک object چه وقت هایی حذف می شود؟ فرض کنید یک object معمولی (نه static) در یک scope (بین begin و end) ساخته اید. وقتی آن scope تمام شود، object های ساخته شده در آن scope نیز پاک می شوند. دستور delete هم باعث پاک شدن یک object می شود.

۱ نظر موافقین ۰ مخالفین ۰
روزبه صیادی

تعریف آرایه در heap

سلام!

در این جلسه می خواهیم طرز کار آرایه ها را در ++c یاد بدهیم و سپس طرز تعریف آرایه را در heap توضیح دهیم.

فرض کنید یک آرایه ی معمولی ۱۰ تایی را تعریف کرده اید:

int ar[10];

این خط باعث می شود که compiler به دنبال ۱۰ جای خالی پشت سر هم در حافظه بگردد و هر وقت که پیدا کرد، آدرس اولین خانه را در ar بریزد (پس نتیجه می گیریم که ar هم اشاره گر است). حالا مثلا اگر در برنامه بگوییم

ar[5] = 5;

یعنی ۵ خانه جلوتر از خانه ای که ar به آن اشاره می کند را پیدا کن و مقدار آن را برابر با ۵ قرار بده.

۰ نظر موافقین ۰ مخالفین ۱
روزبه صیادی

تعریف متغیر در heap

سلام

همان طور که قبلا گفته شده است، دو نوع حافظه وجود دارد. حالا فرض کنید که می خواهید برنامه ای بزرگ بنویسید. برنامه ای که حافظه ی مورد نیاز آن از stack بیشتر است. پس باید از heap استفاده کنیم.

بیایید یک برنامه ی ساده تر بنویسیم. مثلا تعریف یک متغیر int در heap:

int *a = new int;

۰ نظر موافقین ۰ مخالفین ۱
روزبه صیادی