Yshopnoosa.com

C++ funktionsanropet är saknade argumentlista

En funktion i C/C++ språk är en process för att uppnå vissa mål. Core syntax och mekanismen av ett C++-program ärver grundreglerna för den ursprungliga C-språket och bygger på den. Definiera funktionen i 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 utan parametrar alls:

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

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

Saknade argument

C++ kan du anropa en funktion utan dess definierade argument. Detta medför inte en kompilering, länk-tid eller körning fel. I det här fallet använder funktionen standardvärden för argumenten vid körning. Ange standardvärden för argument just då och där:

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

Funktion överbelastning

Detta är en mycket speciell funktion i C++. Du kan "overload" en befintlig funktionsdefinition med en annan. Funktionsnamnet förblir densamma, men skiljer sig argumentlistan. Den här funktionen för att överbelasta standardbiblioteket funktioner också, men bara när det behövs:

t.ex. int MyFunction (int en);

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

Här, berättar syntaxen i funktionsanropet kompilatorn vilka MyFunction att plocka upp. Om du inte lämnar några argument, plockas den tredje en. Om funktionsanropet ser ut så här: "r_val = MyFunction 12." sedan kompilatorn använder andra definitionen.

Att tillhandahålla standardvärden för argument som visas i avsnitt 2, är en genväg funktion överbelastning; men fungerar det bara i enkla fall.

Överbelastning objekt konstruktorer

Den verkliga kraften i funktion överbelastning i C++ är i konstruktorn överbelastning. Definiera konstruktören av ett objekt i två eller flera sätt. Med andra ord kan den som ringer att skapa objektet på olika sätt av olika skäl--som bakåtkompatibilitet, bärbarhet och flexibilitet. Konstruktorn för objektet MyObject heter "MyObject ()." Till exempel:

klass datum {

int day, month, year ;

public: void date ( char *c_date ) ; void date ( int mm, int dd, int yy ) ; void date () ;

...

}

I den äldre versionen av denna programvara, har "Datum" objektet skapats med hjälp av en sträng anges av användaren. I nästa utgåva antogs månad, dag och år separat för att undvika stela format kontroll. Från och med dagen för offentliggörandet, programmerare lita inte på användaren alls, men gå och hämta eller beräkna datum med systemklockan, håller på att skapa objektet "Date". Skapa objekt 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 programvaran, och stött på en användare program som anropar datum utan argument, kanske du förvirrad om hur kompilatorn tillåtet som. Förklaringen är funktionen överbelastning.