(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.