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

1.3 KiB

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.