C++:n hämmästyttävä maailma

- hassun hauska C++-opas -

copyright (c) 1997-2002 Aleksi Kallio

 

Tervetuloa vaatimattoman C++-oppaani pariin. Ihan näin aluksi varottaisin, että tämä sepustus ei ole eikä haluakaan olla perinteinen ohjelmointiopas. Siis jos etsit kompaktia ja koherenttia opasta C++-ohjelmoinnin oleellisten pääkohtien opiskeluun, niin en lupaa paljoa. Hieman kärjistäen voisi sanoa, että minä en yritäkään kertoa mikä C++-kieli on - vaan kuinka sinä voit sitä oppia. C++-kieli on niin mammuttimainen kokonaisuus, että harva sitä ihan kokonaan hallitsee.

Mutta vaikka tyylini onkin melko vapaamuotoinen, niin silti olen pyrkinyt kertoman vain totuuden ja koko totuuden. Erityinen tavoite oppaassani on ollut se, että en pelkästään kerro miten joku toimii, vaan mihin ja miten sitä kannattaa käyttää - esimerkkien ja käytännön kokemusten terästämänä. Tieteellinen kieli tarjoaa valtavan sanaston asioiden ylimalkaiseen käsittelyyn, joten arkikielen ei tarvitse olla ainakaan este ytimekkäälle jutustelulle.

Sisällysluettelossa tähdellä merkityt kappaleet ovat hieman haastavampia. Aluksi suosittelen lukemaan Yleistä-osion.

HUOM! Lue ainakin Yleistä-osion ensimmäinen kappale, se sisältää tärkeää "päivitystietoa"!

  1. Yleistä
  2. Perusteet
    1. Asiaan
    2. Syöttö ja tulostus
    3. Muuttujat
    4. Liukuluvut ja lukujen merkitseminen
    5. Tyyppimuunnos
    6. Taulukot
    7. Kuinka mokata taulukoiden kanssa
    8. sizeof ja muuttujat
    9. Kommentoiminen
  3. Matemaattiset operaattorit
    1. Laskutoimitukset
    2. Etuliiteoperaattorit
    3. Aivojumppaa: uhmaako a = a + 1; todellisuuden luonnetta?
  4. Rakenteet
    1. Ehtolauseet
    2. Jos ei niin sitten..
    3. Toistorakenteet: while ja for
    4. Rakenteiden yhdistely ja do..while
    5. break ja continue
    6. switch..case -rakenne
    7. Nimiavaruudet *
  5. Funktiot
    1. Funktiot
    2. Funktion oletusparametrit
    3. Funktioiden uudelleenmäärittely
    4. main()-funktio
    5. Lohkot, lauseet ja lausekkeet
    6. Muuttujien näkyvyys
  6. Esikääntäjä
    1. Esikääntäjän perustemput
    2. Vakiot oikeaoppisesti
    3. typedef
    4. Lueteltu tyyppi: enum
    5. Esikääntäjä tappaa talossa ja puutarhassa
    6. Makrot
    7. Elegantti vaihtoehto makroille
    8. Ei vara venettä kaada - eikä assert() toimivaa ohjelmaa
  7. Osoittimet
    1. Viittaukset
    2. Osoittimet
    3. Salattu totuus taulukoista ja moninkertaisista osoittimista
    4. Kun viittaillaan, osoitellaan ja tökitään miten sattuu
    5. Osoittimet funktioihin
    6. Funktio-osoitintaulukot ja funktio-osoittimet parametreina
  8. Oliot ja luokat
    1. Oliot ja luokat
    2. Olio on tiedot ja toiminnallisuus
    3. Tiedon kapselointi
    4. Muodostin- ja tuhoajafunktiot
    5. Operaattoreiden ylikuormittaminen
    6. coutin todellinen luonne
    7. Osoitin jäsenfunktioon
  9. Muistinhallinta
    1. Muistin varaaminen ja vapauttaminen
    2. Taulukot ja oliot muistia varaamalla
    3. Varo vaanivaa vaaraa
  10. Periytyminen
    1. Luokkahierarkiat
    2. Muodostinfunktiot
    3. Moniperintä
    4. Virtuaaliset funktiot
    5. Polymorfismi isolla P:llä
  11. Perinteinen standardikirjasto
    1. Merkkijonot
    2. atoi ja itoa
    3. Sattumia soppaan
    4. qsort
    5. Trigonometria
  12. Mallit ja geneerinen ohjelmointi
    1. Tee-se-itse: linkitetty lista
    2. Mitä mallit oikeasti ovat?
    3. Mallien spesialisointi
    4. Mallit käytäntöjen parametrisoijana
    5. Mallien monimutkainen käyttö
    6. Mitä mallit abstraktisti ovat? *
    7. Geneerinen ohjelmointi *
  13. STL: Lyhyenläntä oppimäärä
    1. Standard Template Libraryn idea
    2. Tietorakenteet ja lähes tietorakenteet
    3. Iteraattorit
    4. Algoritmit
    5. Virrat
    6. Numerot ja matematiikka
  14. Oliosuunnittelu
    1. Luokan kaksi liittymää
    2. Ohjelmoinnin ihmissuhdeteoria
    3. Oliosuunnittelun pyhä kolminaisuus
    4. Oliomallinnuksen heikkoudet
  15. Numeerinen matematiikka
    1. Sattuu ja tapahtuu - satunnaislukugeneraattorit
  16. Sekalaista
    1. Hyvän koodin kirjoitus
    2. Muistialueet
    3. C++:n varatut sanat
    4. volatile ja register
    5. Komentoriviparametrit
  17. Sanasto
  18. Kysymykset ja vastaukset
  19. Mistä löydän lisätietoa?

Kaikki tämä materiaali löytyy myös paketista cppopas.zip (lähes vastaava kuin online-versio). Oppaan tekijää voi lähestyä sähköpostittamalla osoitteeseen aleksi.kallio (at) iki.fi.

Viimeisin päivitys tehty 23.11.2004. Koko sisältöä ei ole käyty läpi huolella pitkiin aikoihin...