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

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

مثال در سی++ 
در سی++ متد مخرب هم نام کلاس می‌باشد اما یک مدک (~) در ابتدای آن وجود دارد. در زیر یک نمونه از استفاده از مخرب در سی++ نمایش داده شده‌است.
#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';
}

منابع 

 

شگرد (برنامه‌نویسی رایانه‌ای)
سی++