Eli miten voi tehdä siten että funktion parametreille annetaan oletusarvoja mikäli arvoja ei ole annettua funktiokutsussa?
Eli, ajatellaan että on funktio summa()
int summa(int a, int b, int c){}
sitten summa() funktiota kutsutaan seuraavasti
summa(1,2);
eli arvot on nyt annettu vain a:lle ja b:lle, miten c:lle saadaan määritettyä vaikka arvo 5 oletuksena?
Kiitos!
Eli, ajatellaan että on funktio summa()
int summa(int a, int b, int c){}
sitten summa() funktiota kutsutaan seuraavasti
summa(1,2);
eli arvot on nyt annettu vain a:lle ja b:lle, miten c:lle saadaan määritettyä vaikka arvo 5 oletuksena?
Kiitos!
Vastaukset 2
Vanhimmat
C-kielellä nimittäin, jota ilmeisesti tarkoitit...
Yleensä näissä tilanteissa käytetään makroja, jotka syöttävät funktion "puuttuville" parametreille oletusarvot. Tai funktiota, joka ottaa vaihtelevan määrän parametreja. Jälkimmäisessä tapauksessa on löydettävä tapa, jolla funktio tietää sille välitettyjen parametrien määrän ja tyypin, vrt. esim. printf().
C :lla onnistuu helpommin, näin:
int summa(int a, int b, int c = 5){}
tai (overloading):
int summa(int a, int b){}
int summa(int a, int b, int c){}
Visual C .NET:llä menisi näin
Int32 Summa(Int32 a, Int32 b) { /* funktion sisältö, määritä c= 5*/}
ja sitten sama funktio uudelleen
Int32 Summa(Int32 a, Int32 b, Int32 c) {/* ja niin edespäin */}
VB .NET:llä menisi näin
Function Summa(ByVal a as Long, ByVal b a Long)
'
' Koodia tänne, mm. c = 5
'
End Function
Function Summa(ByVal a as Long, ByVal b as Long, ByVal c as Long)
'
' Lisää koodia
'
End Function