Jag vet inte ens om det kallas så men det jag undrar är om det är möjligt att skriva en funktion med säg totalt 3 parametrar:
void enFunktion(int a, int b, int c)
{
//blabla
}
Och sen kalla på funktionen och bara ange 2 parametrar:
enFunktion(1,2);
alltså jag vill att parametern c inte ska behöva anges men ska kunna anges.
Någon som vet om det är möjligt och hur man då ska skriva.
tydalMedlem sedan juni 20033 788 inlägg I C går det inte, men i C++ gör man så här:
void enFunktion(int a, int b, int c = 0)
{
return;
}
Om du sedan anropar enFunktion(1, 2); så kommer c att få värdet 0.
msossnaMedlem sedan feb. 2002279 inlägg Det finns inget som hindrar att man gör en extrafunktion för att komma runt det hela i C
void enFunktion(int a, int b, int c)
{
//blabla
}
void enFunktion(int a, int b)
{
enFunktion(a, b, 0);
}
matlinMedlem sedan okt. 2006228 inlägg Överlagring av metoder kan man väl göra i alla OO språk, men inte många av dom stödjer "Optional parameters" som rent generellt anses vara "vackrare" kod än överlagring på metoder.
Men visst, det finns inget hinder att överlagra :)
spangoMedlem sedan juni 20006 147 inlägg Ursäkta O/T, men:
matlin skrev:
Överlagring av metoder kan man väl göra i alla OO språk
Nja, överlagring och OO har inget med varandra att göra, det är nog snarare kopplat till statisk typning (se t.ex. http://corfield.org/entry/Overloading_is_not_OO). Som exempel finns överlagring inte i vare sig Python, Ruby, Objective-C eller Smalltalk (de två sistnämnda har infixnotation av metodnamn vilket gör att man aldrig vill överlagra någonting igen).