Files
lab-cpp-build-namespaces/answers/solutions.md
T
2026-07-21 20:12:58 +02:00

34 lines
1.3 KiB
Markdown

# Odpowiedzi — CPP01
Zbudować program z wielu jednostek translacji i odczytać granice nazw oraz linkage.
## Task01 — Deklaracja i definicja
Rozdziel deklarację funkcji, definicję i punkt wejścia między trzy pliki.
Oczekiwany stdout: `sum=7`.
Pliki dowodu: `src/task01/calculator.cpp`, `src/task01/calculator.hpp`, `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 — Linkage zewnętrzny i wewnętrzny
Porównaj symbol dostępny między plikami z nazwą ukrytą w anonimowej przestrzeni nazw.
Oczekiwany stdout: `external=5 internal_bias_result=8`.
Pliki dowodu: `src/task02/api.hpp`, `src/task02/global.cpp`, `src/task02/main.cpp`, `src/task02/shifted.cpp`.
Wynik nie jest oceniany wzrokowo: test kompiluje kod bez ostrzeżeń, uruchamia go i wykonuje dokładne `diff` z plikiem `tests/expected`.
## Task03 — Kwalifikacja przestrzeni nazw
Użyj dwóch funkcji o tej samej nazwie bez kolizji i wywołaj je kwalifikowaną nazwą.
Oczekiwany stdout: `sensor=21 network=204`.
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`.