2.1.4 Aliohjelmat eli funktiot

Toisena esimerkkinä yksinkertaisesta C++-ohjelmasta otetaan erillistä funktiota käyttävä toteutus. Pääohjelma-funktion lisäksi tässä käytetään tulostuksen suorittamiseen toista määriteltävää funktiota.

/* *********************************************************
TOKA.CPP
  Luotu:    15.02.1993, Petri Laukkanen
  Muutettu: 24.04.1997, Timo Männikkö
  Toiminta: Tulostaa näytölle tekstin "Hello world!"
            käyttäen tulostamiseen erillistä funktiota.
********************************************************* */

#include <iostream.h>

void tulosta(void)
{
  cout << "Hello world!\n"; // tulostetaan teksti
}

int main(void)
{
  tulosta(); // kutsutaan tulosta-funktiota
  return 0;  // palautetaan käyttöjärjestelmälle arvo 0
}

Toiminnaltaan tämä ohjelma vastaa täsmälleen ensimmäistä esimerkkiohjelmaa, ero on ainoastaan ohjelman toteutuksessa. Edellisessä ohjelmassa oli vain yksi funktio, pääohjelma, joka suoritti tulostamisen. Tässä on määritelty toinen funktio, jossa varsinainen tulostaminen suoritetaan, pääohjelma ainoastaan kutsuu tätä funktiota.

Tulostavan funktion nimeksi on valittu tulosta. Funktion nimen edessä on osa (sana), joka kertoo funktion palauttaman arvon tyypin. Tässä esimerkissä esiintyy kahta eri paluuarvon tyyppiä, void ja int. Tyyppi void määrittää funktion tyypittömäksi eli se ei palauta kutsuvalle ohjelmalle mitään arvoa. Sen vuoksi tulosta-funktiossa ei tarvita return-lausetta. Tyyppi int määrittää funktion tyypiksi integer eli kokonaislukutyyppi. Tämän mukaisesti main-funktion viimeisenä lauseena on return eli palautuslause ja sille annettu kokonaisluku (tässä 0) palautuu kutsuvalle ohjelmaosalle. Pääohjelman tapauksessa kutsuvana osana on käyttöjärjestelmä. Yleensä, jos ohjelma toimii niin kuin sen oletetaan toimivan, palautetaan 0. Muilla arvoilla osoitetaan virhetilanteita.

Funktioille itselleen voidaan viedä parametreja. Parametrit ovat arvoja (lukuja, merkkejä,...), joita funktio tarvitsee suorittaakseen sille kuuluvan toiminnon. Parametrit määritellään funktion nimen perässä olevissa sulkeissa. Tämän esimerkin funktioille main ja tulosta ei viedä mitään parametreja. Kun parametreja ei ole, kirjoitetaan esittelyssä sulkujen väliin sana void. Funktiota kutsuttaessa puolestaan kirjoitetaan funktion nimen perään sulkumerkit (), jotka ovat aina pakolliset.

Funktioihin palataan sitten, kun on ensin opittu hieman enemmän C++-kielen perusrakenteita.

Lause on pienin itsenäinen yksikkö C++-kielessä. Lause päättyy AINA puolipisteeseen.
Lohko on ryhmä yhteenkuuluvia lauseita. C++-kielen lause voidaan korvata lohkolla. Lohko aloitetaan {-merkillä ja lopetetaan }-merkillä.
Funktio on ohjelman "itsenäinen" osa, joka suorittaa jonkin ennalta määrätyn toimenpiteen.

Kirjoita pääohjelma, joka tulostaa tekstin
"minä olen todellakin Heikki"
Ohjelma vaatii yhden direktiivin, minkä?