1.1 KiB
Odpowiedzi — CPP09
Zapewnić zwolnienie zasobu przez strukturę programu, także przy wczesnym return.
Task01 — Uchwyt jako obiekt
Zwiąż stan otwarcia uchwytu z konstruktorem i destruktorem.
Oczekiwany stdout: acquire / open=1 / release / open=0.
Pliki dowodu: src/task01/main.cpp.
Wynik nie jest oceniany wzrokowo: test kompiluje kod bez ostrzeżeń, uruchamia go i wykonuje dokładne diff z plikiem tests/expected.
Task02 — Wczesny return
Potwierdź zwolnienie strażnika przy wyjściu z funkcji przed jej końcem.
Oczekiwany stdout: acquire / work=short / release / after.
Pliki dowodu: src/task02/main.cpp.
Wynik nie jest oceniany wzrokowo: test kompiluje kod bez ostrzeżeń, uruchamia go i wykonuje dokładne diff z plikiem tests/expected.
Task03 — Zagnieżdżone zasoby
Sprawdź zwalnianie zagnieżdżonych zasobów w odwrotnej kolejności.
Oczekiwany stdout: acquire=A / acquire=B / inside / release=B / release=A.
Pliki dowodu: src/task03/main.cpp.
Wynik nie jest oceniany wzrokowo: test kompiluje kod bez ostrzeżeń, uruchamia go i wykonuje dokładne diff z plikiem tests/expected.