2.1.2 Ensimmäinen C++-ohjelma

Katsotaan kohta miltä lyhyt ja yksinkertainen C++-kielinen ohjelma voisi näyttää. Ennen sitä mietitään kuitenkin, mitä jokaisen C++-ohjelman tulee sisältää:

Kommentti siitä, mitä ohjelma tekee, sekä ohjelman tekijä ja tekoaika. Ohjelman tulee aina alkaa tällaisella yleisellä informaatiolla. Kone ja kääntäjä eivät tietenkään välitä siitä, onko ohjelmaa mitenkään kommentoitu (koska kommentit hypätään ohjelmaa käännettäessä yli), mutta hyvä ohjelmointitapa ja -taito edellyttävät kunnollisten kommenttien käyttöä.

Direktiivi eli ohje esikääntäjälle. Direktiivi alkaa #-merkillä. Direktiivillä #include voidaan omaan ohjelmaan liittää mukaan valmiita aliohjelmakirjastoja. Kirjastojen liittäminen ei ole C++-kielen sääntöjen mukaan mitenkään pakollista (eikä direktiivi siis ole pakollinen), mutta toimivan ohjelman kirjoittaminen vaatii yleensä ainakin yhden aliohjelmakirjaston liittämistä koodiin: sen, jossa määritellään yksinkertaisia syöttö- ja tulostustoimintoja. Tämän kirjaston osat esitellään iostream.h -tiedostossa. Toiminnot saadaan liitettyä mukaan omaan ohjelmaan direktiivillä #include <iostream.h> . Samalla tavalla saadaan tarvittaessa mukaan myös muita kirjastoja, tiedoston nimi vain vaihdetaan (esim. stdio.h, math.h, stdlib.h, jne.). Tällöin tulos on sama kuin, jos sisällytettävän tiedoston sisältämä teksti olisi kirjoitettu #include-direktiivin tilalle.

Pääohjelma tarvitaan jokaiseen kirjoitettuun ohjelmaan. Ilman tätä ei suoritettavaa ohjelmaa pystytä tuottamaan. Pääohjelman nimi on määrätty, sen täytyy olla main.

Yksinkertaisin mahdollinen C++-ohjelma (joka myös tekee jotain näkyvää) on seuraava:

/* *********************************************************
EKA.CPP
  Luotu:    15.02.1993, Petri Laukkanen
  Muutettu: 18.09.1995, Tarmo Hyttinen
            24.04.1997, Timo Männikkö
  Toiminta: Tulostaa näytölle tekstin "Hello world!".
********************************************************* */

#include <iostream.h>

int main(void)
{
  cout << "Hello world!\n"; // tulostetaan teksti
  return 0;                 // palautetaan käyttöjärjestelmälle
}                           //  arvo 0 (tarkoittaa: OK!)

Kun ohjelma suoritetaan, niin näyttöruudulle tulee teksti

Hello world!

Esimerkkiohjelmassa on seuraavat osaset:

Tiedosto iostream.h on niin sanottu header-tiedosto, jossa on esitelty tietojen syötön ja tulostuksen (input/output, I/O) keskeiset operaatiot ja tarvittavat tietorakenteet. Tässä ohjelmassa direktiiviä tarvitaan, koska ohjelma käyttää tulostukseen cout-oliota, jonka määrittely on iostream.h-tiedostossa. Ilman direktiiviä kääntäjä ei tunnistaisi cout:ia ja kääntäminen epäonnistuisi.

Ohjelman runkona on funktio nimeltä main. Ohjelma käynnistyy siten, että käyttöjärjestelmä kutsuu funktiota main, eli toteuttaa sen sisältämät komennot. Jokainen C++:n funktio voi palauttaa arvon kutsuvalle yksikölle sen suorituksen päättymisen yhteydessä. Esimerkissä funktio main palauttaa arvon 0 kutsuvalle yksikölle eli käyttöjärjestelmälle. Arvon palauttaminen suoritetaan return-lauseella. Arvo nolla kertoo kutsuvalle ohjelmayksikölle, tässä tapauksessa käyttöjärjestelmälle, että kaikki meni hyvin, eikä mitään virheitä ei päässyt tapahtumaan.

Ohjelman suoritus alkaa AINA funktiosta, jonka nimi on main.

Lause on pienin itsenäinen C++-kielen yksikkö. Esimerkissä esiintyy kaksi lausetta,

cout << "Hello world!\n";

ja

return 0;

Lause päättyy aina puolipisteeseen.

Yhteen kuuluvat lauseet yhdistellään lohkoksi. Lohko merkitään aaltosuluin {} ja se voi korvata lauseen. Lohkon perään ei tule puolipistettä.

Esimerkissä esiintyy yksi ainoa lohko, funktion main runko eli lauseet, joista funktio main koostuu. Funktio muodostuu aina yhdestä päälohkosta, jonka sisällä funktioon kuuluvat lauseet ovat. Lisäksi funktiossa voi olla päälohkon sisällä pienempiä lohkokokonaisuuksia sisäkkäin tai peräkkäin.

Mieti seuraavien termien merkitystä ja käyttöä:
funktio pääohjelma lause lohko direktiivi main