Destruktorius – specialus objekto metodas, atsakingas už visų objekto užimamų resursų (atminties, užmegztų tinklo jungčių, laikinų bylų) užleidimą kitiems tikslams. Baigus vykdyti destruktoriaus kodą, objektas laikomas „sunaikintu“ – jokie vėlesni kreipiniai į jį nebeleistini.
Pakartotinas destruktoriaus iškvietimas yra rimta programavimo klaida, kurios pasekmės programos vykdymui nenumatomos (angl. undefined behavior). Vengdamos tokių klaidų, naujesnės programavimo kalbos vietoj destruktoriaus naudoja užbaigiklį (angl. finalizer) nors ir to patariama vengti .