Strona główna › Pytania INF.04 › Pytanie 372
INF.04 · pytanie #372
W klasie pracownik zdefiniowano następujące metody: <pre class="code-block"> pracownik() { ... } static void wypisz() { ... } int operator== (const pracownik &prac) { ... } ~pracownik() { ... } </pre> Która z nich jest odpowiednia do dodania elementu diagnostycznego o treści: <pre class="code-block"> cout << "Obiekt został usunięty"; </pre>

- A~pracownik
- Bwypisz
- Coperator==
- Dpracownik
Poprawna odpowiedź: A. ~pracownik
Kliknij odpowiedź, którą uważasz za poprawną.
Wyjaśnienie
Destruktor to specjalna metoda w języku C++ oznaczona tyldą przed nazwą klasy która jest wywoływana automatycznie w momencie usuwania obiektu danego typu z pamięci. Dlatego dodanie elementu diagnostycznego cout<<Obiekt został usunięty; jest najbardziej sensowne w destruktorze ponieważ pozwala na śledzenie momentu w którym obiekt przestaje istnieć. Takie podejście jest zgodne z dobrymi praktykami programistycznymi ponieważ pomaga w debugowaniu i zarządzaniu zasobami w programie. Warto zauważyć że destruktory są kluczowe w kontekście zarządzania pamięcią szczególnie gdy klasa dynamicznie alokuje zasoby. Wówczas destruktor powinien zawierać kod zwalniający te zasoby aby uniknąć wycieków pamięci. Dodawanie diagnostycznych komunikatów może pomóc programistom w identyfikacji potencjalnych błędów związanych z zarządzaniem cyklem życia obiektów i poprawić ogólną stabilność i czytelność kodu. Praktyka ta jest szczególnie ważna w dużych projektach gdzie ręczne śledzenie wszystkich obiektów byłoby trudne i czasochłonne. Warto stosować taką diagnostykę w połączeniu z nowoczesnymi narzędziami do profilowania i analizy pamięci co zwiększa efektywność procesu programistycznego.
🤖 Wyjaśnienie generowane przez AI – weryfikuj w oficjalnych źródłach.