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

مشابه سازنده ها تابع مخرب نیز نوع برگشتی ندارد.

مثال. توابع myclass در کلاس زیر سازنده هستند. تابع ~myclass یک مخرب است که در انتهای تابع اصلی فراخوانی می شود و فایل متن را می بندد.

 

 

 

در برنامه فوق هنگام ایجاد شیء myobject تابع سازنده فراخوانی شده خطی را از فایل متن خوانده و به متغیر عضو تابع اختصاص می دهد. اگر در برنامه اصلی شیء به صورت زیر ایجاد شود سازنده دوم فراخوانی می شود و مقدار آرگومان را به متغیر msg اختصاص می دهد.

myclass myobject(“Howdy from Texas!”);


اغلب کلاس ها را در فایل های هدر تعریف می کنند. ترکیب کلاس و فایل هدر سطح بالاتری از قابلیت استفاده مجدد کد را فراهم می کند و می توان آن را در هر فایلی که به کلاس نیاز دارید ضمیمه کنید.