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.
