مخرب (برنامه‌نویسی رایانه)

از ویکی‌پدیا، دانشنامهٔ آزاد

در برنامه‌نویسی شیءگرا مخرب (انگلیسی: Destructor‎) یک متد است که به‌طور خودکار زمانی شیء از حذف شود، صدا زده می‌شود. این اتفاق می‌تواند زمانی رخ دهد که طول عمر شیء به یک محدوده مشخص محدود شود و اجرای برنامه محدوده را ترک کند، یا زمانی که شیء داخل یک شیء دیگر تعریف شده باشد و طول عمر شی دوم تمام شود. هدف اصلی این متد آزاد کردن منابعی (حافظه‌های تخصیص داده شده، فایل‌ها یا سوکت‌های باز، اتصالات به پایگاه‌های داده، قفل‌های منابع و غیره) می‌باشد که در طول عمر شیء توسط آن اشغال شده‌است.

مثال در سی++[ویرایش]

در سی++ متد مخرب هم نام کلاس می‌باشد اما یک مدک (~) در ابتدای آن وجود دارد. در زیر یک نمونه از استفاده از مخرب در سی++ نمایش داده شده‌است.

#include <cstring>
#include <iostream>

class foo_t
{
	friend std::ostream & operator << ( std::ostream & os, foo_t const & foo )
	{
		os << foo.data;
		return os;
	}

private:
	char * data;
	foo_t( foo_t const & other );                // disable copy construction
	foo_t& operator = ( foo_t const & other );   // disable assignment

public:
	foo_t( void ) : data( new char[ 14 ] ) { std::strcpy( data, "Hello, World!" ); } 
	~foo_t( void ) { delete [] data; }
};
 
int main()
{
	foo_t foo;
	std::cout << foo << '\n';
}

منابع[ویرایش]