Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Paikalliset ja oletusargumentit | Funktioargumenttien Määrittely
C++-Funktiot

Paikalliset ja oletusargumentit

Pyyhkäise näyttääksesi valikon

Paikalliset argumentit

Paikalliset argumentit ovat tapa välittää arvoja funktiolle tietyssä järjestyksessä funktion määrittelyn mukaisesti. Arvot liitetään parametreihin niiden sijainnin perusteella parametrilistan järjestyksessä. Jokaisen argumentin sijainti määrittää, mihin parametriin se liittyy.

main.cpp

main.cpp

1234567891011121314151617181920
#include <iostream> // Function that takes two positional arguments float divide(float a, float b) { if (b == 0) return 0; return a / b; } int main() { float x = 8; float y = 4; // Calling the 'divide' function with two positional arguments float result = divide(x, y); std::cout << result << std::endl; }

Voit tehdä pienen kokeen: vaihda argumenttien järjestystä funktiokutsussa (käytä divide (y, x) sijaan divide(x, y)), ja huomaat, että tulos muuttuu. Tämä on juuri paikallisten argumenttien ydin: parametrien välitysjärjestyksellä funktiolle on merkitystä, ja se vaikuttaa suoraan lopputulokseen.

Oletusargumentit

Oletusargumentit mahdollistavat oletusarvojen asettamisen funktioiden parametreille. Jos funktiota kutsutaan ilman kaikkia argumentteja, puuttuvat saavat oletusarvonsa. Oletusarvon asettamiseksi anna parametriin arvo suoraan funktion määrittelyssä.

main.cpp

main.cpp

12345678910111213141516171819202122
#include <iostream> // Default value is set for the third parameter float divide(float a, float b, bool terminate = true) { if (b == 0) { if (terminate) return 0; return a / 0.000001; // Prevent crash by using a very small number } return a / b; } int main() { std::cout << divide(10, 2) << std::endl; // Normal division std::cout << divide(10, 0) << std::endl; // Default behavior (error) std::cout << divide(10, 0, false) << std::endl; // Forced division }

divide()-funktio jakaa luvun toisella luvulla. Jos nimittäjä (b) on nolla:

  • terminate = true → palauttaa 0
  • terminate = false → jakaa hyvin pienellä luvulla virheen välttämiseksi

terminate-parametrilla on oletusarvo true, joten sen voi jättää pois. Aseta terminate = false jatkaaksesi laskentaa pysäyttämisen sijaan.

Note
Huomio

On tärkeää, että kaikki oletusargumentit sijaitsevat paikka-argumenttien jälkeen parametrilistassa. Muussa tapauksessa kääntäjä antaa virheen.

question mark

Mikä funktiomäärittely käyttää oikein paikka- ja oletusargumentteja?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 2. Luku 1

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 2. Luku 1
some-alt