На програмском језику C++ направити темплејтску класу Set која моделира скуп са елементима произвољног типа. Приватни атрибути класе су број елемената скупа и динамички низ елемената, а као јавне чланице:
подразумевани конструктор који поставља број елемената скупа на 0,
конструктор за постављање броја елемената скупа и заузимање неопходног простора у меморији,
деструктор,
inline методу која враћа број елемената скупа,
методу која испитује да ли задати елемент припада скупу,
операторску методу * која одређује пресек два скупа.
Имплементирати и пријатељске оператоске методе:
>> - за учитавање елемената скупа,
<< - за упис елемената скупа.
Такође, направити класу Movie која од приватних атрибута има назив филма, пуно име редитеља и трајање филма, а од јавних чланица:
подразумевани конструктор који поставља све податке на нулте вредности,
деструктор,
оператор = који додељује један објекат класе Movie другом,
оператор == који пореди два филма.
Дефинисати и пријатељске операторске методе:
<< - који штампа назив филма, пуно име редитеља и трајање филма,
>> - који учитава све арибуте филма.
У главном програму специјализовати темплејт и тестирати све његове методе за податке типа double и за класу Movie.
Monsters, Inc.
Pete Docter, David Silverman, Lee Unkrich
92
Finding Nemo
Andrew Stanton, Lee Unkrich
100
Passengers
Morten Tyldum
116
Thor: Love and Thunder
Taika Waititi
118
Guardians of the Galaxy Vol. 3
James Gunn
150
Направити шаблонску класу Buffer која представља низ елемената произвољног типа, маскималне дужине задате као нетипски параметар шаблона. Класа има следеће методе:
getItem(int index) - враћа елемент на позицији index и низу,
getFirst() - враћа први елемент листе,
getLast() - враћа задњи елемент листе,
add - додаје нови елемент у листи.
Имплементирати и класу Student која ће као приватне чланове имати име и презиме студента, број индекса и просечну оцену са до сада положених испита, а као јавне следеће чланице:
конструктор без аргумента,
конструктор за копирање,
операторску методу = која додељује један објекат класе Student другом.
Такође имплементирати и пријатељске операторске методе:
>> за учитавање података о студенту,
<< за штампање података о студенту.
У main функцији креирати објекат класе Buffer који ради са карактерима и објекат класе Buffer који ради са студентима и тестирати све методе класе Buffer за оба објекта.
#ifndef BUFFER_H#define BUFFER_Htemplate<classT,intn>classBuffer{private:Titems[n];intcount=0;public:TGetItem(intindex);TGetFirst();TGetLast();boolAdd(constT&element);};template<classT,intn>TBuffer<T,n>::GetItem(intindex){if(index<0||index>=count){throw"Index out of bounds";}returnitems[index];}template<classT,intn>TBuffer<T,n>::GetFirst(){returnGetItem(0);}template<classT,intn>TBuffer<T,n>::GetLast(){returnGetItem(count-1);}template<classT,intn>boolBuffer<T,n>::Add(constT&element){if(count>=n){returnfalse;}items[count++]=element;returntrue;}#endif