Zaawansowane CPP/Ćwiczenia 10: Inteligentne wskaźniki: Różnice pomiędzy wersjami
Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Nie podano opisu zmian |
Nie podano opisu zmian |
||
Linia 1: | Linia 1: | ||
'''Zadanie 1 ''' Napisz testy sprawdzające działanie szablony | '''Zadanie 1 ''' Napisz testy sprawdzające działanie szablony | ||
inteligentnego wskaźnika opartego na zliczaniu referencji. | inteligentnego wskaźnika opartego na zliczaniu referencji. | ||
'''Zadanie 2 ''' Napisz | '''Zadanie 2 ''' Napisz klasę wytyczna do wskaźnika <code><nowiki>Ref_ptr</nowiki></code> opartą o | ||
listę referencji. | listę referencji. | ||
'''Zadanie 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: | '''Zadanie 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 { | ||
private: | private: | ||
size_t _count; | size_t _count; | ||
Linia 20: | Linia 16: | ||
bool remove_ref() {--_count; return _count == 0;} | bool remove_ref() {--_count; return _count == 0;} | ||
size_t count() const {return _count;}; | size_t count() const {return _count;}; | ||
}; | };</nowiki> | ||
</nowiki> | |||
'''Zadanie 4 ''' | '''Zadanie 4 ''' | ||
Linia 27: | Linia 22: | ||
kontenera. | kontenera. | ||
'''Zadanie 5 ''' Zaimplementuj iterator | '''Zadanie 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 { | ||
class node { | class node { | ||
Linia 39: | Linia 34: | ||
node* _root; | node* _root; | ||
} | }</nowiki> | ||
</nowiki> |
Wersja z 09:32, 3 wrz 2006
Zadanie 1 Napisz testy sprawdzające działanie szablony inteligentnego wskaźnika opartego na zliczaniu referencji.
Zadanie 2 Napisz klasę wytyczna do wskaźnika Ref_ptr
opartą o
listę referencji.
Zadanie 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;}; };
Zadanie 4 Zaimplementuj iterator pozwalający wkładać wartości na koniec kontenera.
Zadanie 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; }