Destruktor w klasie (C++)

Witam,

Stworzyłem klasę, w której mam destruktor. Następnie utworzyłem wskaźnik na moją klasę. I mam takie pytanie: Czy w momencie usunięcia wskaźnika (poprzez delete wskaźnik) destruktor zostanie automatycznie uruchomiony? Czy muszę go sam zainicjować przed usunięciem wskaźnika?

Dziękuję za pomoc :slight_smile:

Czy ty z każdym pytaniem musisz lecieć na forum? Użyć Google/innej wyszukiwarki to nie łaska? Przecież to pierwszy wynik jest!

Na temat: tak, jest wywoływana(delete, przy free() nie).

A po za tym mialem podobne pytania i nie możesz przetestowac?!

Sprawdź sobie za pomocą takiej przydatnej klasy.

class Tracker {

 public:

	Tracker() : m_name("default") {

		std::cout << "Konstruktor " << m_name << std::endl;

	}

	Tracker(std::string name) : m_name(name) {

		std::cout << "Konstruktor [" << m_name << "]" << std::endl;

	}

	Tracker(const Tracker& obj) : m_name(obj.m_name) {

		std::cout << "Konstruktor kopiujący [" << m_name << "]" << std::endl;

	}

	~Tracker() {

		std::cout << "Destruktor [" << m_name << "]" << std::endl;

	}

	void operator()(int i) {

		std::cout << "operator()(" << i << ") [" << m_name << "]" << std::endl;

	}

	std::string method() {

		std::cout << "method() [" << m_name << "]" << std::endl;

		return m_name;

	}


	friend std::ostream& operator<<(std::ostream& stream, const Tracker& obj) {

		stream << "Tracker(" << obj.m_name << ")\n";

		return stream;

	}


 private:

	std::string m_name;

};

PS. Wiem, że kod niezbyt ładny, ale użyteczny.