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: | ||
''Uwaga: przekonwertowane latex2mediawiki; prawdopodobnie trzeba wprowadzi� poprawki'' | ''Uwaga: przekonwertowane latex2mediawiki; prawdopodobnie trzeba wprowadzi� poprawki'' | ||
Linia 19: | Linia 18: | ||
void add_ref() { ++_count;} | void add_ref() { ++_count;} | ||
bool remove_ref() {--_count; return _count | bool remove_ref() {--_count; return _count == 0;} | ||
size_t count() const {return _count;}; | size_t count() const {return _count;}; | ||
}; | }; |
Wersja z 13:46, 1 wrz 2006
Uwaga: przekonwertowane latex2mediawiki; prawdopodobnie trzeba wprowadzi� poprawki
{Inteligentne wskaźniki}
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. Drzwo opearte jest o strukturę:
template<typename T> class binary_tree { class node { T _val; node *_left; node *_right; } node* _root; }