En funktion i C /C + + språk är en process för att uppnå vissa mål . Kärnan syntax och mekanismen för en C + + -program ärver grundläggande reglerna för den ursprungliga C-språk och bygger på det . Definiera funktionen i en C + + objekt eller som en global funktion , anropa funktionen med värden för varje definierad parameter . Argument till funktioner
Definiera en lista över variabler som parametrar till funktionen . Dessa kallas " argument . " Du kan också definiera en funktion som saknar parametrar alls :
ObjectO :: FunctionF ( int arg1 , char * arg2 , dubbel ARG3 ) { //Funktion Body //. resultatet varierar med argumentvärden } Addera Missing argument
C + + tillåter dig att ringa en funktion utan dess definierade argument . Detta orsakar inte en kompilering , link - tid eller run - time error . I det här fallet använder funktionen standardvärden för argument vid run -time . Ge standardvärden för argument just då och där :
void myFunction ( dubbel d_arg = 0,0 ) {if ( d_arg == 0,0 ) ... annars ... }
funktion Överbelastning
Detta är en mycket speciell egenskap av C + + . Du kan " overload " en befintlig funktion definition med en annan . Funktionen namn förblir densamma, men argumentlistan är annorlunda. Använd denna funktion för att överbelasta standard bibliotek funktioner också , men bara när det behövs :
t.ex. int myFunction ( int a ) ; int myFunction ( int a , dubbel b ) , int myFunction ( ) ;
Här berättar syntax funktionsanropet kompilatorn som myFunction att plocka upp . Om du inte klarar några argument , är den tredje plockas upp . Om funktionsanropet ser ut så här : " r_val = myFunction ( 12 ) , " då kompilatorn använder den andra definitionen
ge standardvärden för argument , såsom visas i avsnitt 2 , är en genväg metod . funktion överbelastning , men det fungerar bara i enkla fall
överbelastning Object Constructors
Den verkliga kraften i funktion överbelastning i C + + är i konstruktoröverinläsning . . Definiera konstruktören av ett objekt på två eller flera sätt . Med andra ord , så att motparten kan skapa objektet på olika sätt av olika skäl - som bakåtkompatibilitet , bärbarhet eller flexibilitet. Konstruktor för objektet MyObject heter " MyObject ( ) . " Till exempel :
class datum { int dag , månad , år ,
allmänheten : void datum ( char * c_date ) ; void datum ( int mm , int dd , int åå ) , void datum ( ) ;
...
}
i den äldre versionen av denna programvara , den " Date " objektet skapades genom att använda en sträng som anges av användaren . I nästa release, var den månaden , dagen och året gått för sig för att undvika stela formatet kontroll . Per dagen för offentliggörandet , inte lita programmerare inte på användaren alls , men gå och hämta eller beräkna datumet med hjälp av systemklockan , i processen för att skapa den " Date " objektet . Skapa objektet i programmet :
Metod A : datum ( " 10.10.2011 " ) , Metod B : datum ( 10 , 10 , 2011 ) , Metod C : datum ( ) ;
Om du är bekant med den äldre versionen av denna programvara , och stöter på en användares program som anropar dagen utan argument , kan du vara förvirrad om hur kompilatorn tillåtet att . Förklaringen är funktionen överbelastning .