Zaawansowane CPP/Ćwiczenia 10: Inteligentne wskaźniki

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania

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;

}