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
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
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→ palauttaa0terminate = 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.
On tärkeää, että kaikki oletusargumentit sijaitsevat paikka-argumenttien jälkeen parametrilistassa. Muussa tapauksessa kääntäjä antaa virheen.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme