Napišite klasu Broj koja predstavlja veliki cijeli broj, te osnovne operacije na njemu. Neka je klasa interno reprezentirana nizom znamenaka proizvoljne duljine. Napravite kontrolu kopiranja.
Napravite funkciju duljina koja vraća duljinu broja, te operator[] koji dohvaća i-tu znamenku (od iza). Ako znamenka ne postoji, treba ju dodati, a ako se vodeća znamenka postavlja na 0, treba smanjiti duljinu broja.
Optimizirajte operacije tako da se nepotrebna kopiranja što je moguće više smanje.
Napišite konstruktor i pridruživanje s parametrom proizvoljno polje brojeva, proizvoljni sekvencijalni spremnik, int, te string.
Napišite parametriziranu klasu Vektor koja predstavlja proizvoljan vektor brojeva.
Klasu napravite da radi kao pametni pokazivač, koji prilikom [], ako ima izmjena vrši kreiranje novog objekta.
Napravite konstruktore sve kao i u std::vectoru.
Napišite konstruktor s parametrom proizvoljno polje i standardni sekvencijalni spremnik.
Napišite parametrizirano sučelje Matrica koja predstavlja matricu s osnovnim operacijama na njoj.
Napišite implementaciju dijagonalne matrice i normalne matrice. Neka su obje implementirane kao pametni pokazivači.
Napišite konstruktor s parametrom proizvoljno dvodimenzionalno polje i standardni sekvencijalni spremnik.
Napišite funkciju koja rješava sustav jednadžbi zadan matricom i vektorom.
Napišite main koji demonstrira upotrebu klasa.
Vinko Petričević, 11. ožujka 2013.