C ++ Function Call mangler Argument List

En funksjon i C / C ++ språk er en prosess for å oppnå noen mål. Kjernen syntaks og mekanismen av et C ++ program arver grunnleggende regler i den opprinnelige C-språk og bygger på den. Definerer funksjonen i en C ++ gjenstand eller som en global funksjon; kaller funksjonen med verdier for hver definert parameter.

Argumenter til funksjoner

Definer en liste over variabler som parametre til funksjonen. Disse kalles "argumenter." Du kan også definere en funksjon uten parametre på alle:

ObjectO :: FunctionF (int arg1, char * arg2, dobbel arg3)

{
// Function Body.
// outcome varies with argument values
}

Manglende argumenter

C ++ tillater deg å kalle en funksjon uten sine definerte argumenter. Dette fører ikke til en samle-tid, link-time eller kjøre-time feil. I dette tilfelle bruker funksjon standardverdier for argumenter ved kjøring. Gi standardverdier for argumenter akkurat der og da:

void MyFunction ( double d_arg = 0.0 )
{
if ( d_arg == 0.0 )
...
else
...
}

funksjon Overbelastning

Dette er en veldig spesiell funksjon i C ++. Du kan "overload" et eksisterende funksjonsdefinisjon med en annen. Funksjonsnavnet forblir den samme, men argumentlisten er forskjellig. Bruk denne funksjonen til å overbelaste standard biblioteksfunksjoner også, men bare når det er nødvendig:

f.eks int MyFunction (int a);

int MyFunction (int a, double b) ;
int MyFunction () ;

Her, syntaksen til funksjonen samtalen forteller kompilatoren som MyFunction å plukke opp. Hvis du ikke passerer noen argumenter, er den tredje plukket opp. Hvis funksjonen samtalen ser slik ut: "r_val = MyFunction (12);" da kompilatoren bruker andre definisjonen.

Gir standardverdier for argumenter, som vist i kapittel 2, er en snarvei metode for funksjon overbelastning; men det fungerer bare i enkle tilfeller.

Overbelastning Object Constructors

Den virkelige kraften i funksjon overbelastning i C ++ er i konstruktør overbelastning. Definer konstruktøren av en gjenstand i to eller flere måter. Med andre ord, at den som ringer for å opprette objektet på forskjellige måter for forskjellige grunner - som bakoverkompatibilitet, bærbarhet eller fleksibilitet. Constructor for objekt MyObject heter "MyObject ()." For eksempel:

klasse dato {

int day, month, year ;

offentlig:
ugyldig dato (char * c_date);
ugyldig dato (int mm, int dd, int åå);
ugyldig dato ();

...

}

I den eldre versjonen av denne programvaren ble "Dato" objekt opprettes ved hjelp av en streng angitt av brukeren. I den neste utgivelsen, ble måned, dag og år gikk separat for å unngå stive format sjekking. Per dato for offentliggjøring, har programmerere ikke stole på brukeren i det hele tatt, men gå og hente eller beregne datoen ved hjelp av systemklokken, i ferd med å skape "Date" objekt. Opprett objektet i programmet:

Metode A: dato ( "10.10.2011");
Metode B: dato (10, 10, 2011);
Metode C: dato ();

Hvis du er kjent med den eldre versjonen av denne programvaren, og kommer over et brukerprogram som kaller dato uten argumenter, kan du være forvirret med hensyn til hvordan kompilatoren tillatt det. Forklaringen er funksjonen overbelastning.