Destructor در سی پلاس پلاس (Destructor in Cpp)

در این قسمت تیم کدگیت را با آموزش Destructor در سی پلاس پلاس همراهی کنید. این جلسه آموزشی را با معرفی Destructor آغاز و سپس با پیاده سازی یک مثال واقعی آموزش را تمام می‌کنیم. پیش نیاز این آموزش شامل موارد زیر است:

  1. شی گرایی در سی پلاس پلاس
  2. Constructor در سی پلاس پلاس
  3. توابع در سی پلاس پلاس

Destructor در سی پلاس پلاس

در آموزش‌های گذشته به معرفی Constructor پرداختیم. گفتیم که Constructor هنگام ساخت شی ایجاد می‌شود و اگر Constructor توسط ما نوشته نشود سی پلاس پلاس Default Constructor را صدا می‌زند. در این قسمت به معرفی تابع دیگری به نام Destructor می‌پردازیم. این تابع برخلاف Constructor، هنگام حذف شی صدا زده می‌شود. این تابع را می‌توان برای آزاد سازی Memory یا فایل استفاده کرد. اما سوالی که مطح می‌شود این است که در چه مواقعی شی حذف می‌شود؟ در چند حالت شی می‌تواند حذف شود که در زیر آنها را معرفی کردیم:

  1. اتمام تابع
  2. اتمام برنامه
  3. اتمام یک بلاک
  4. استفاده از کلمه کلیدی delete

اما Destructor ویژگی‌هایی دارد که آن را از Constructor متمایز می‌کند:

  1. تابع Destructor دقیقا همنام با اسم کلاس است اما علامت ~ قبل از نام آن قرار می‌گیرد.
  2. تابع Destructor هیچ ورودی را نمی‌گیرد و هیچ مقداری را return نمی‌کند.

مثال Destructor در سی پلاس پلاس

با توجه به توضیحاتی که دادیم در این قسمت برای درک بهتر مسئله، مثال ساده‌ای را خواهیم زد. کلاسی به نام Line داریم که یک متغیر عمومی Length دارد. یک Constructor و یک Destructor نیز در آن تعریف کردیم. کد این مثال به صورت زیر است:

همانطور که در کد بالا می‌بینید، یک شی از جنس Line در تابع Main نوشتیم. سپس یک متن ساده را چاپ کردیم. حال خروجی کد را با ببینیم:

همانطور که می‌بینید در خروجی متنی که در Destructor نوشته شده چاپ شده است. در قسمت قبل یکی از شرط‌های اجرای Destructor، اتمام برنامه بود که در این جا این شرط صدق می‌کند و تابع اجرا شد.

پسورد: www.codegate.ir

 

دسته : Object Oriented in Cpp, آموزش ++c, زبان c++, َشی گرایی در سی پلاس پلاس

دیدگاه بگذارید

نظر شما چیست؟

مطلع کردن شما از
avatar

wpDiscuz