Harjutusülesanded
1. Magasin
Implementeeri klassi Magasin
konstruktorid ja funktsioonid, kui klassi deklaratsioon on antud. Klass peab käituma analoogiliselt andmestruktuurile magasin (stack), kus push
lisab elemendi (m_pea
hakkab viitama viimati lisatud elemendile) ja pop
eemaldab viimati lisatud elemendi. Elementideks on üksteisega ahelana seotud tipud.
template <typename T> class Magasin{ public: Magasin(); // vaikekonstruktor ~Magasin(); // destruktor Magasin(Magasin& m); // koopiakonstruktor Magasin& operator = (const Magasin& m); // koopia omistamise (''copy assignment'') operaator void push(T& element); // lisa element magasini T pop(); // võta element magasinist välja bool isEmpty() const; // kas magasin on tühi? void tryki(); // kuvab magasini elemendid ekraanile private: // Siseklass class Tipp{ public: Tipp(const T& liige) : m_liige{liige} {} // Tipp konstruktor T m_liige; // Tipus hoitav objekt Tipp* m_jargmine{}; // viit järgmisele tipule }; Tipp* m_pea{}; // viit magasini otsale };
2. Massiiv
Kirjuta malliklass Massiiv
, mis hoiab endas fikseeritud pikkusega massiivi. Malliklassil on kaks parameetrit.
Esimene on massiivi elemendi tüüp ja teine on elementide arv massiivis. Klass peab täitma järgmisi nõudeid:
- Massiivi elemendid paigutada C++ fikseeritud pikkusega massiivi.
- Klassis on ühe parameetriga konstruktor, parameetriks on
std::initializer_list
(vajalik päis<initializer_list>
). Massiiv väärtustatakse parameetris antud väärtustega. Kui parameetris on vähem elemente kui massiivi pikkus, siis ülejäänud väärtustatakse nulliga.
vt https://cplusplus.com/reference/initializer_list/initializer_list/
- Klassis on koopiakonstruktor ja destruktor.
vt https://en.cppreference.com/w/cpp/language/copy_constructor
- Klassis on üle defineeritud operaator
operator[]
elemendi kättesaamiseks indeksi abil. - Klassis on funktsioon, mis tagastab massiivi elementide arvu.
- Klassis on funktsioon, mis täidab massiivi etteantud arvuga.
- Kõik andmed peavad olema privaatsed.
- Klassis on funktsioon
tryki
, mis võimaldab massiivi elemente mõistlikult ekraanile kuvada. - Klassis on üle defineeritud operaator
operator<<
, mis võimaldab massiivi elemente mõistlikult ekraanile kuvada.