Упражнение 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). Да
се реализират "големите три" член-функции на класа.
Да се демонстрират:
- създаване и унищожаване на обекти с различни параметри на шаблона;
- работата на член-функциите и предефинираните операции на класа.