Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  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.
  2. Esitelkää yksi luokka, jossa on privaatti jäsenmuuttuja, sekä yksi julkinen metodi.
  3. Mallintakaa CAuto-luokka, jossa tulee olla vähintään 5 jäsenmuuttujaa ja niille asetus ja tulostusfunktiot.
    Lisäksi kirjoittakaa muodostin, jossa antaa alkuarvot jäsenmuuttujille.
    Funktioiden ja muuttujien tulee olla public-tyyppisiä.
  4. 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.
  5. Tehkää yksi luokka, jossa on privaatti jäsenmuuttuja.
    Kirjoittakaa luokalle parametriton muodostin, jossa jäsenmuuttujalle annetaan (alku)arvo.
    Luokaa luokasta olio main():ssa.
  6. 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)
  7. Tehkää luokka, jossa on kolme privaattia jäsenmuuttujaa, sekä PARAMETRILLINEN muodostin, jossa kaikille kolmelle muuttujalle annetaan arvo.
    Luo luokasta olio main():ssa.
  8. 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.
  9. 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.
  10. 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.
  11. Kopioikaa koostuminen-sivulla annettu esimerkki 2 ja siirtäkää jokainen luokka omaan tiedostoonsa.
    Tätä ei tarvitse saada kääntymään!
  12. Tehkää seuraavat jäsenfunktiot:
    CTietokone-luokalle int Suorita(int, int, char);
    CProsessori-luokalle int Laske(int, int, char);
    Luokkien metodeilla tulee olla toteutukset, joiden avulla voidaan suorittaa seuraavat laskutoimitukset: yhteenlasku, vähennyslasku, kertolasku ja jakolasku.
    Ideana on että main:ssa voidaan antaa seuraava funktiokutsu: pc.Suorita(10, 2, '+'); Tämä funktio puolestaan kutsuu CProsessori-luokan funktiota Laske(), joka palauttaa paluuarvona laskennan tuloksen. Kutsuketju siis on seuraava: main()>Suorita()>Laske().
    Vihje: voitte käyttää CProsessori-luokan Laske()-metodissa switch...case-rakennetta.
  13. Lisätkää vielä CRAM-luokalle void Talleta(int); ja int Palauta(); -funktiot ja tehkää toteutukset näille.
    Käyttäkää CTietokone-luokan Suorita()-funktiossa näitä tallentaaksenne laskettu arvo 'muistiin'.
  14. Kopioikaa CElain ja CKissa luokat Periytyminen-sivun esimerkki 1:stä.
    Tehkää toteutukset jäsenfunktioille.
    Lisätkää main()-funktio ja luokaa siellä olio CKissa-luokasta.
    Testatkaa mitä jäsenfunktioita voitte kutsua.
  15. Tehkää luokka, jossa on kaksi privaattia jäsenmuuttujaa, näille julkiset asetus- sekä privaatit tulostafunktiot.
    Lisäksi tehkää luokkaan julkinen Tulosta()-funktio, joka puolestaan kutsuu privaatteja tulostafunktioita.
    Luokaa luokasta olio, asettakaa muuttujille jotkin arvot ja tulostakaa ne.
    HUOM: Tässä tehtävässä tehty luokka on enkapsuloitu...
  16. (Tämä tehdään tehtävän 15 pohjalta)
    Lisätkää luokka, joka perii tehtävässä 15 tekemäsi luokan.
    Tehkää perilliseen kaksi protected-tyyppistä muuttujaa ja niille tulostafunktiot.
    Lisätkää vielä julkinen Tulosta()-funktio (tätä kutsutaan funktion ylikirjoittamiseksi),
    joka kutsuu vanhemman Tulosta()-funktiota perillisen tulostafunktioiden lisäksi (kts. periytyminen-sivun lopusta).
    Luokaa perillisestä olio mainissa ja kutsukaa Tulosta-funktiota.
  17. Tehkää luokka, jossa on funktio, joka ottaa 2 parametria. Määritä nämä parametrit vakioiksi (const) ja testatkaa mitä tapahtuu jos niitä yrittää muuttaa.
  18. Tehkää luokka, jossa on yksi vakio jäsenmuuttuja (const), alustakaa se.
    Lisätkää luokkaan jäsenfunktio, joka käyttää vakio-jäsenmuuttujaa (esim. tulostaa sen).
  19. Tehkää kaksi luokkaa joista toinen perii toisen.
    Kirjoittakaa molempiin muodostimet, joissa vaikka tulostatte tekstin.
    Luokaa olio perillisestä ja selvittäkää vastaus kysymykseen: "Kutsutaanko vanhemman muodostinta ja missä vaiheessa?"
  20. Tehkää kaksi luokkaa, CAuto ja CMoottori, joista CAuto koostuu CMoottorista.
    Kutsukaa CMoottori-luokan metodia CAuto-luokan metodista, jota puolestaan kutsutaan main():sta.
    Luokaa olio CAutosta ja selvittäkää vastaus kysymykseen: "Kutsutaanko CMoottorin muodostinta ja missä vaiheessa?"
  21. Tehkää luokka, jossa on kolme vakiota (const) jäsenmuuttujaa (huom! taulukot eivät toimi!) ja tehkää luokasta olio mainissa.
  22. 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ä).
  23. 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. Kts mallia Abstraktit luokat esimerkki 3
    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 metodeita, tai jollain muulla tavalla.

...