Zaawansowane CPP/Ćwiczenia 10: Inteligentne wskaźniki: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
|||
Linia 1: | Linia 1: | ||
{{cwiczenie|1|| | |||
Napisz testy sprawdzające działanie szablony | |||
inteligentnego wskaźnika opartego na zliczaniu referencji. | inteligentnego wskaźnika opartego na zliczaniu referencji. | ||
}} | |||
{{cwiczenie|2|| | |||
Napisz klasę wytyczna do wskaźnika <code><nowiki>Ref_ptr</nowiki></code> opartą o | |||
listę referencji. | listę referencji. | ||
}} | |||
{{cwiczenie|3|| | |||
Napisz klasę wytyczną do wskaźnika <code><nowiki>ref_ptr</nowiki></code> opartą o licznik we wskazywanym obiekcie. Załóż, że obiekty wskazywane dziedziczą z klasy: | |||
<nowiki>class Handle { | <nowiki>class Handle { | ||
Linia 17: | Linia 23: | ||
size_t count() const {return _count;}; | size_t count() const {return _count;}; | ||
};</nowiki> | };</nowiki> | ||
}} | |||
{{cwiczenie|4|| | |||
Zaimplementuj iterator pozwalający wkładać wartości na koniec | Zaimplementuj iterator pozwalający wkładać wartości na koniec | ||
kontenera. | kontenera. | ||
}} | |||
{{cwiczenie|5|| | |||
Zaimplementuj iterator realizujący przechodzenie po drzewie binarnym. Drzewo oparte jest o strukturę: | |||
<nowiki>template<typename T> class binary_tree { | <nowiki>template<typename T> class binary_tree { | ||
Linia 35: | Linia 44: | ||
}</nowiki> | }</nowiki> | ||
}} |
Wersja z 19:10, 10 wrz 2006
Ćwiczenie 1
Napisz testy sprawdzające działanie szablony inteligentnego wskaźnika opartego na zliczaniu referencji.
Ćwiczenie 2
Napisz klasę wytyczna do wskaźnika Ref_ptr
opartą o
listę referencji.
Ćwiczenie 3
Napisz klasę wytyczną do wskaźnika ref_ptr
opartą o licznik we wskazywanym obiekcie. Załóż, że obiekty wskazywane dziedziczą z klasy:
class Handle { private: size_t _count; public: Handle():_count(0){}; void add_ref() { ++_count;} bool remove_ref() {--_count; return _count == 0;} size_t count() const {return _count;}; };
Ćwiczenie 4
Zaimplementuj iterator pozwalający wkładać wartości na koniec kontenera.
Ćwiczenie 5
Zaimplementuj iterator realizujący przechodzenie po drzewie binarnym. Drzewo oparte jest o strukturę:
template<typename T> class binary_tree { class node { T _val; node *_left; node *_right; } node* _root; }