Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:dydaktyka:jimp2:2016:part2:ex:ex3 [2016/05/02 23:40]
msl
pl:dydaktyka:jimp2:2016:part2:ex:ex3 [2019/06/27 15:50] (aktualna)
Linia 1: Linia 1:
 +====== Ćwiczenie 3: Pojemniki - wektor ======
 +
 +Ćwiczenie to jest częścią większego zadania, które będzie polegać na zaprojektowaniu **szablonów** kilku rodzajów klas pojemnikowych z wykorzystaniem **mechanizmu dziedziczenia** oraz **iteratora** dla tych klas. \\ **Ćwiczenie 3.** polegać będzie na zaprojektowaniu szablonu pojemnika typu **wektor**. ​
 +
 +===== Po co =====
 +
 +  * Doskonalenie umiejętności definiowania szablonów.
 +  * Utrwalenie umiejętności posługiwania się mechanizmami dziedziczenia,​ polimorfizmu.
 +  * Zapoznanie się z podstawowymi strukturami danych.
 +
 +===== Oddawanie ćwiczenia =====
 +  * Przed oddaniem ćwiczenia, program należy przetestować używając następującego pliku main: {{:​pl:​dydaktyka:​jimp2:​2016:​part2:​ex:​ex3.zip|}}
 +  * Powyższy plik wymaga istnienia pliku ''​aghInclude.h''​ poprzez który włączane są wszystkie niezbędne pliki.
 +
 ===== Przebieg ćwiczenia ===== ===== Przebieg ćwiczenia =====
  
Linia 37: Linia 51:
     * Inne konieczne metody i/lub operatory wedle uznania.     * Inne konieczne metody i/lub operatory wedle uznania.
   - W klasie **abstrakcyjnej** (**''​aghContainer''​**) definiujemy **wszystkie** możliwe do zdefiniowania metody. Zaoszczędzi to sporo czasu w kolejnych ćwiczeniach przy tworzeniu klas pochodnych. Metody których ciało **nie** może zostać zdefiniowane w klasie abstrakcyjnej to: **destruktor**,​ **''​remove''​**,​ **''​size''​**,​ **''​insert''​**,​ **''​at''​**. Pozostałem metody definiujemy przy pomocy wyżej wymienionych.   - W klasie **abstrakcyjnej** (**''​aghContainer''​**) definiujemy **wszystkie** możliwe do zdefiniowania metody. Zaoszczędzi to sporo czasu w kolejnych ćwiczeniach przy tworzeniu klas pochodnych. Metody których ciało **nie** może zostać zdefiniowane w klasie abstrakcyjnej to: **destruktor**,​ **''​remove''​**,​ **''​size''​**,​ **''​insert''​**,​ **''​at''​**. Pozostałem metody definiujemy przy pomocy wyżej wymienionych.
-  - Budujemy klasę **''​aghVector''​**,​ która będzie **dziedziczyć** powyższą klasę abstrakcyjną w sposób **publiczny**. Klasa powinna obsługiwać **wszystkie** powyższe metody. ​<WRAP center round tip 60%> +  - Budujemy klasę **''​aghVector''​**,​ która będzie **dziedziczyć** powyższą klasę abstrakcyjną w sposób **publiczny**. Klasa powinna obsługiwać **wszystkie** powyższe metody.
-Proszę stosować się do tzw. [[https://​en.wikipedia.org/​wiki/​Rule_of_three_%28C%2B%2B_programming%29|reguły trzech]] +
-</​WRAP>​+
  
   - Nie ma przymusu tworzenia metod czy też klas specjalizowanych.   - Nie ma przymusu tworzenia metod czy też klas specjalizowanych.
Linia 51: Linia 63:
 <WRAP center round tip 60%> <WRAP center round tip 60%>
 Plik ''​catch.h''​ jest to [[https://​github.com/​philsquared/​Catch|jedna z najlepszych bibliotek do pisania testów kodu w C++]]. Plik ''​ex3main.cpp''​ korzysta z niej do testowania dostarczonych implementacji. Plik ''​catch.h''​ jest to [[https://​github.com/​philsquared/​Catch|jedna z najlepszych bibliotek do pisania testów kodu w C++]]. Plik ''​ex3main.cpp''​ korzysta z niej do testowania dostarczonych implementacji.
 +</​WRAP>​
 +
 +<WRAP center round important 60%>
 +Podczas implementacji klasy ''​aghVector''​ proszę stosować się do, tzw. [[https://​en.wikipedia.org/​wiki/​Rule_of_three_%28C%2B%2B_programming%29|reguły trzech]]
 </​WRAP>​ </​WRAP>​
  
pl/dydaktyka/jimp2/2016/part2/ex/ex3.1462225210.txt.gz · ostatnio zmienione: 2019/06/27 15:52 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0