Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: Funktiot

Azure [12.02.2006 13:05:04]

#

Mitä kaikkea voidaan tehdä funktioilla, kuin asioita joita halutaan ohjelmassa tehtävän monesti ilman pitkiä koodeja?

Blaze [12.02.2006 13:38:17]

#

Funktioilla voi uusiokäyttää osia koodia. Jos vaikka kolmessa paikassa tarkistat, onko merkkijonon pituus 0, kannattaa tuo tarkistuskoodi kirjoittaa funktioksi ja kutsua sitä sen sijaan, että vain copypasteaisi tuota koodia paikasta toiseen.

zorm [12.02.2006 14:35:13]

#

Funktioita käyttämällä menee koodi (ainakin yleensä) pienempään tilaan. Haittapuolena funktioiden käytössä on se että koodi tulee hitaammaksi kun joudutaan siirtymään koodissa paikasta toiseen kun funktiota kutsutaan.

Antti Laaksonen [12.02.2006 16:50:21]

#

Kannattaa tehdä funktio, jos näyttää siltä, että koodiin tulee moneen kohtaan pitkä samanlainen osuus. Funktioita käyttämällä mahdolliset muutokset täytyy tehdä vain kerran ja koodimäärä jää pienemmäksi. Näin ohjelmointi helpottuu ja virheet vähentyvät. Funktioiden käyttö hidastaa koodia niin vähän, että siitä ei kannata yleensä murehtia. Tietenkään liiallisuuksiin ei kannata mennä funktioissakaan.

koo [12.02.2006 20:18:43]

#

Funktiot ovat myös hyvä tapa jäsentää ja selkiyttää koodia. Kääntäjä kyllä huolehtii optimointipuolen.

Pikkujutuistakin kannattaa tehdä omia funktioita, vaikkei juttua tarvittaisi kuin yhdessä paikassa. C:ssä kannattaa tehdä static-funktioita, C++:ssa on anonyymit nimiavaruudet samaa tarkoitusta varten.

Nykytyylisessä (olio)koodissa funktiot näyttävät usein olevan aika lyhyitä, alle kymmenrivisiä. Osansa tähän on silläkin, että käytetään johdonmukaisesti exceptioneita virhetilanteiden hanskaamiseen.

jutti [14.02.2006 00:28:50]

#

Ei ne funktiot välttämättä hidasta yhtään koodia. Uudet kääntäjät ovat kuulemma aika älykkäitä. Jos kutsut jotain funktiota viisi kertaa eri paikoissa koodissa, kääntäjä saattaa muuttaa ohjelman sellaiseksi kuin se olisi jos itse olisit kirjoittanut funktion niihin viiteen kohtaan, jos siitä vain on jotain nopeushyötyä.

Juuso [16.02.2006 04:19:50]

#

Antti Laaksonen kiteytti melko hyvin sen että funktiot ovat tärkeitä. Jokainen yksittäinen tehtävä kannattaa toteuttaa omana funktionaan, tietysti mahdollisimman yleisenä sellaisena , jolloin sitä voi hyödyntää helposti myös tulevissa projekteissa. Funktion(metodin) määrittelyyn kuuluu oleellisena osana myös alku-ja loppuehdot. Ehtojen käyttö edesauttaa myöhempää hyödyntämistä.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta