Files
2026-07-21 20:11:42 +02:00

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.