Упражнение 14

Шаблони

Задача 1:
Define a template class Set that stores integers in a dynamically allocated array of arbitrary objects.
template<typename T>
class Set
{
public:
    void add(T n);
    bool contains(T n) const;
    int get_size() const;
    ...
private:
    T* elements;
    int size;
};

In a set, the order of elements does not matter, and every element can occur at most once.
Supply the add, contains, and get_size member functions and the “big three” memory management functions.

Задача 2:
Да се направи шаблон-клас за моделиране на полином (многочлен) от произволна степен с коефициенти от даден числов тип (int, double, ...). Да се напишат следните член-функции:
- за пресмятане на стойността на полинома при зададена променлива x;
- за получаване степента на полинома;
- за пресмятане на първата производна на полинома.
Да се предефинират следните операции:
- сума на два полинома;
- входен и изходен потоци;
-умножение на полином с число;
- сравняване на два полинома за равенство.

Елементите на класа да се съхраняват в динамичната памет (heap). Да се реализират "големите три" член-функции на класа.

Да се демонстрират:
- създаване и унищожаване на обекти с различни параметри на шаблона;
- работата на член-функциите и предефинираните операции на класа.