Tehtävä 1:
-Muokatkaa tunneilla tehtyä esimerkkiä Tietokone-luokasta siten, että lisäätte luokkaan kaksi uutta jäsenmuuttujaa (ominaisuutta) ja mainiin toisen olion Tietokone-luokasta, määrittäen myös sen ominaisuudet.
Tehtävä 2:
-Mallintakaa CAuto-luokka, jossa tulee olla vähintään 5 jäsenmuuttujaa ja niille asetus ja tulostusfunktiot, lisäksi kirjoittakaa muodostin. Funktioiden ja muuttujien tulee olla public tyyppisiä.
Tehtävä 2:
-Muuttakaa CAuto-luokkaa siten, että kaikki muuttujat sekä TulostaMerkki(), TulostaMalli(), jne. -funktiot ovat private-tyyppisiä.
-Kirjoittakaa public-tyyppinen Tulosta()-funktio, joka kutsuu private-tyyppisiä Tulosta()-funktioita.
-Tulostakaa auton tiedot main():sta.
Tehtävä 3:
-Lisätkää CAuto-luokkaan vähintään kaksi ominaisuutta (valmistusvuosi, väri jne) ja tehkää niille asetus- ja tulostusmetodit.
-Muuttakaa Tulosta()-metodia siten, että se kutsuu myös näitä lisättyjä metodeja.
Tehtävä 4:
-Tehkää kokonaan uusi luokka, jossa on min. 2 muuttujaa ja näille asetusfunktiot.
-Lisätkää luokkaan muodostin, jolla EI OLE parametreja.
-Alustakaa muuttujat muodostimessa oletusarvoihin.
Tehtävä 5:
Muokatkaa koostuminen-sivulla annettua esimerkkiä 2.
-Luokkien metodeilla tulee olla toteutukset, joiden avulla voidaan suorittaa seuraavat laskutoimitukset: + - * /.
-Tehkää operaatiot int-tyyppisille muuttujille.
-Laskutoimitukset pitää tulostaa ruudulle, tyyliin 2 + 3 = 5.
-Vihje: käyttäkää CProsessori-luokan Laske()-metodissa switch-case rakennetta
-Jokainen luokka tulee on omassa tiedostossaan.
HUOM. Kun luotte luokkia, niin älkää käyttäkö Add/Add Class -palvelua, vaan luokaa tyhjä .h tai .cpp -tiedosto ja kirjoittakaa kaikki käsin. Ajatuksella.
Tehtävä 6:
-Tehkää auto-luokka (tai käyttäkää jo olemassa olevaa), jossa on protected-määreellä väh. kaksi metodia ja viisi muuttujaa (renkaiden lkm, jne).
-Periyttäkää auto-luokasta jokin luokka (esim. linja-auto, rekka, jne).
-Lisätkää perilliseen väh. kaksi uutta muuttujaa ja metodia.
-Tehkää perilliseen Aseta(...) metodi, jolla on asetetaan arvo kaikille perillisen ja vanhemman muuttujille.
-Tehkää perilliseen Tulosta() metodi, joka tulostaa kaikkien perillisen ja vanhemman muuttujien arvot.
-Asettakaa muodostimessa auto luokan renkaiden lukumääräksi 4. Muuttakaa tämä lukumäärä vastaamaan perillisen renkaiden lukumäärää.
-Luokaan main():iin olio perillisestä (rekka, linja-auto, tjm) ja kutsukaa vanhemmassa esitettyjä metodeita.
Tehtävä 7: (kertausta)
-Esitelkää yksi luokka, jossa on privaatti jäsenmuuttuja, sekä yksi julkinen metodi.
Tehtävä 8: (kertausta)
-Tehkää yksi luokka (siis esittely ja toteutus metodeille), jossa on yksi privaatti jäsenmuuttuja, sekä yksi parametriton julkinen metodi.
-Luokaa luokasta olio main():ssa ja kutsukaa metodia. Metodin toteutuksessa voi esim. tulostaa tekstin.
!!! TEHKÄÄ UUSI LUOKKA !!!
Tehtävä 9:(kertausta)
-Tehkää yksi luokka, jossa on privaatti jäsenmuuttuja.
-Kirjoittakaa luokalle parametriton muodostin, jossa jäsenmuuttujalle annetaan (alku)arvo.
-Luokaa luokasta olio main():ssa.
!!! TEHKÄÄ UUSI LUOKKA !!!
Tehtävä 10:(kertausta)
-Tehkää luokka, jossa on yksi julkinen metodi, jolla on bool-tyyppinen parametri.
-Riippuen tämän parametrin arvosta, tulostakaa eri tekstit (esim. if/else-rakenteen avulla)
!!! TEHKÄÄ UUSI LUOKKA !!!
Tehtävä 11: (kertausta)
-Tehkää luokka, jossa on kolme privaattia jäsenmuuttujaa, sekä PARAMETRILLINEN muodostin, jossa kaikille kolmelle muuttujalle annetaan arvo.
-Luo luokasta olio main():ssa.
!!! TEHKÄÄ UUSI LUOKKA !!!
Tehtävä 12: (kertausta)
-Tehkää luokka, jossa on kaksi privaattia jäsenmuuttujaa, näille julkiset asetusmetodit sekä privaatit tulostametodit.
-Lisäksi tehkää luokkaan julkinen Tulosta()-metodi, joka puolestaan kutsuu privaatteja tulostametodeja.
-Luokaa luokasta olio, asettakaa muuttujille jotkin arvot ja tulostakaa ne.
HUOM: Tässä tehtävässä tehty luokka on enkapsuloitu...
!!! TEHKÄÄ UUSI LUOKKA !!!
Tehtävä 13:(kertausta)
-Tehkää kaksi luokkaa, joista toinen perii toisen.
-Tehkää vanhempi-luokkaan kaksi protected-tyyppistä muuttujaa ja metodia.
-Kutsukaa näitä perillisen metodeista, joita puolestaan kutsutaan main():sta.
!!! TEHKÄÄ UUDET LUOKAT !!!
Tehtävä 14:(kertausta)
-Tehkää kaksi luokkaa CAuto ja CMoottori, joista CAuto koostuu CMoottorista.
-Kutsukaa CMoottori-luokan metodia CAuto-luokan metodista, jota puolestaan kutsutaan main():sta.
!!! TEHKÄÄ UUDET LUOKAT !!!
Tehtävä 15:(kertausta)
-Tehkää yksi luokka, jossa on privaatti jäsenmuuttuja sekä julkinen metodi, joka palauttaa jäsenmuuttujan arvon.
-Tehkää lisäksi parametriton muodostin, jossa jäsenmuuttujalle annetaan alkuarvo.
-Luokaa olio main():ssa ja kutsukaa metodia, joka palauttaa jäsenmuuttujan arvon
-Tulostakaa eri tekstit if/else -rakenteen avulla, riippuen palautetusta arvosta.
!!! TEHKÄÄ UUDET LUOKAT !!!
Tehtävä 16:
-Tehkää luokka, jossa on kolme jäsenmuuttujaa.
-Kirjoittakaa luokkaan julkinen metodi TeeJotain(), jolla on kaksi parametria, joiden arvot kopioidaan kahdelle jäsenmuuttujalle.
-Kirjoittakaa luokkaan lisäksi privaatti parametriton metodi TeeJotain(), jossa alustetaan kolmas jäsenmuuttuja alkuarvoon.
-Kutsukaa parametrillisesta funktiosta parametritonta metodia.
-Luokaa main():ssa olio luokasta ja kutsukaa parametrillista metodia.
Huom! Molempien metodien nimi tulee olla TeeJotain()!
Tehtävä 17:
-Tehkää luokka, jossa on yksi vakio jäsenmuuttuja (const), alustakaa se.
-Lisätkää luokkaan metodi, joka käyttää vakio-jäsenmuuttujaa.
Tehtävä 18:
-Tehkää luokka, jossa on kaksi vakiometodia.
-Kutsukaa näitä metodeita main():sta, const-tyyppisen olion kautta.
Tehtävä 19:
-Tehkää main():iin kaksi saman tyyppistä muuttujaa, joilla on eri arvot.
-Lisätkää osoitin, joka on samaa tyyppiä kuin muuttujat.
-Tulostakaa molempien muuttujien arvot osoittimen kautta.
Tehtävä 20:
-Kirjoittakaa FUNKTIO, joka ottaa parametrina osoittimen
-Muuttakaa annetun osoittimen osoittamaa arvoa
-Tarkistakaa (esim debuggerilla tai ruudulle tulostamalla) että arvo muuttuu.
Tehtävä 21:
-Kirjoittakaa funktio, jolla on parametreina kaksi (saman tyyppistä) osoitinta.
-Vaihtakaa osoittimien arvot keskenään;
-Tarkistakaa (esim debuggerilla tai ruudulle tulostamalla) että arvot vaihtuivat.
Tehtävä 22:
-Luokaa kolmen alkion osoitintaulukko.
-Luokaa kolme muuttujaa (samaa tyyppiä kuin osoitintaulukko).
-Pistäkää kaikki taulukon osoittimet osoittamaan muuttujiin.
-Tarkistakaa (esim debuggerilla tai ruudulle tulostamalla) että osoittimet toimivat.
Tehtävä 23:
-Luokaa kaksi luokkaa, joista toinen perii toisen.
-Tehkää vanhempi-luokkaan vähintään yksi virtuaalinen funktio.
-Ylikirjoittakaa tämä virtuaalinen funktio perillisessä.
-Käyttäkää perillistä sen luokasta tehdyn olion kautta sekä vanhemman luokan osoittimen kautta.
-Testatkaa mitä tapahtuu, jos muutatte virtuaalisen funktion tavalliseksi funktioksi (eli poistatte sanan virtual funktion määrittelyn edestä).
Tehtävä 24:
-Luokaa vanhempi-luokka, jossa on vähintään yksi aito virtuaalinen funktio.
-Luokaa kaksi luokkaa, jotka perivät ja toteuttavat vanhempi-luokan.
-Luokaa CKokoelma-luokka ja lisätkää siihen vanhempi-luokan tyyppinen osoitintaulukko.
-Luokaa main():ssa CKokoelma-luokasta olio ja perillisistä useita olioita.
-Viekää oliot CKokoelma-luokkaan ja tallentakaa ne osoitintaulukkoon.
-Varmistukaa, että osoitintaulukko toimii, esim kutsumalla olioiden funktioita, tai jollain muulla tavalla.