Zaawansowane CPP/Ćwiczenia 15: Wyjątkowo odporny kod: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Linia 1: Linia 1:
'''Zadanie 1 '''
+
{{cwiczenie|1||
  
 
Wykonaj podany na wykładzie przykład dotyczący alokacji zasobów
 
Wykonaj podany na wykładzie przykład dotyczący alokacji zasobów
 
konstruktorze. Przekonaj się, że rzeczywiście prowadzi to do wycieku
 
konstruktorze. Przekonaj się, że rzeczywiście prowadzi to do wycieku
 
pamięci. Wypróbuj oba rozwiazania.
 
pamięci. Wypróbuj oba rozwiazania.
 
+
}}
'''Zadanie 2 '''  
+
{{cwiczenie|2||  
  
 
Podaj przykład zasobu który może nie zostać zwolniony przez  
 
Podaj przykład zasobu który może nie zostać zwolniony przez  
 
system operacyjny, nawet po zakończeniu programu.  
 
system operacyjny, nawet po zakończeniu programu.  
 
+
}}
'''Zadanie 3 '''
+
{{cwiczenie|3||
  
 
Przeanalizuj implementację tablicy z zadania 14.4, pod kątem
 
Przeanalizuj implementację tablicy z zadania 14.4, pod kątem
Linia 16: Linia 16:
 
implementacje, tak aby była bezpieczna. Czy można to uzyskać bez
 
implementacje, tak aby była bezpieczna. Czy można to uzyskać bez
 
dynamicznej alokacji pamięci?
 
dynamicznej alokacji pamięci?
 +
}}

Wersja z 19:18, 10 wrz 2006

Ćwiczenie 1

Wykonaj podany na wykładzie przykład dotyczący alokacji zasobów konstruktorze. Przekonaj się, że rzeczywiście prowadzi to do wycieku pamięci. Wypróbuj oba rozwiazania.

Ćwiczenie 2

Podaj przykład zasobu który może nie zostać zwolniony przez system operacyjny, nawet po zakończeniu programu.

Ćwiczenie 3

Przeanalizuj implementację tablicy z zadania 14.4, pod kątem odporności na wyjątki. Nie zapomnij o konstruktorach. Popraw implementacje, tak aby była bezpieczna. Czy można to uzyskać bez dynamicznej alokacji pamięci?