(H) Tietoalkioiden sisällön vaihtaminen

Tavoite: Kokeilen C++:n erilaisia parametrinvälitysmekanismeja havainnollistaakseni edellä lukemaani materiaalia.

Ohjeita: Hae ohjelmakoodipohja: templates/03/swap/ -> student/03/swap/. Pohjassa on automaattitestausta varten kääntäjän ohjaus ifndef UNIT_TESTING (ja vastaava endif). Niistä ei tarvitse välittää, eikä niitä saa muuttaa mitenkään.

Koodipohjan pääohjelmassa (funktio main) näet funktion swap kutsun. Tehtävänäsi on kirjoittaa toteutus tälle funktiolle. Toteuta swap-funktio niin, että sitä voi kutsua annetulla tavalla, äläkä muuta main-funktiossa olevaa kutsua mitenkään. (Jos vain yrität kutsua C++:n valmista swap-funktiota, ohjelmasi ei läpäise automaattitestejä.)

Kun funktio swap on toteutettu, pääohjelman pitää toimia seuraavasti:

Enter an integer: 42
Enter another integer: 0
The integers are 0 and 42

Pohdittavaa:

  • Vaikka tietäisit edellä lukemiesi materiaalien perusteella heti, miten tehtävä ratkaistaan, niin tässä on hyvä tilaisuus kokeilla C++:n muidenkin parametrinvälitysmekanismien toimintaa.
  • Voit myös kokeilla, mitä tapahtuu, jos välität funktiolle parametrina literaaleja.
  • Jos C++:ssa olisi dynaaminen tyypitys, niin tämä funktio voisi olla vielä paljon kätevämpi: Jos parametrien tyypillä ei olisi väliä, niin samalla funktiolla voisi vaihtaa kokonaislukumuuttujien sisällöt keskenään ja merkkijonomuuttujien sisällöt keskenään.

A+ esittää tässä kohdassa tehtävän palautuslomakkeen.