Niedeterministyczny destruktor dziedziczy z metody Finalize() bazowej klasy Object.

Deterministyczny destruktor powinien być używany, gdy istnieje potrzeba zwolnienia niezarządzanych zasobów lub zasobów całego systemu (połączenia sieciowe, strumienie plików itp.). W innych przypadkach powinien wystarczyć finalizator. Jeżeli jest używany deterministyczny destruktor, programista powinien tworzyć finalizator, który tylko sprawdza czy destruktor został już wykonany i jeżeli nie został, powinien wykonać go (by uniknąć możliwych wycieków niezarządzanej pamięci/zasobów).

Przykładowy program Poniższy program wyświetla napis "Hello World – Managed" przy użyciu funkcji .NET i napis "Hello World – Native" przy użyciu zwykłej biblioteki standardowej C++.

#include <iostream>

using namespace System; using namespace std; // Przestrzeń nazw standardowej biblioteki języka C++

int main(array<System::String ^> ^args) { Console::WriteLine(L"Hello World - Managed"); cout << "Hello World - Native"; // Wysyłanie podanego tekstu na standardowe wyjście - domyślnie na konsolę/terminal return 0;

Kategoria:C++ Kategoria:.NET