C ++ programmering standardargumenter (parametre)

I denne vejledning lærer vi C ++ standardargumenter og deres arbejde ved hjælp af eksempler.

I C ++ programmering kan vi give standardværdier for funktionsparametre.

Hvis en funktion med standardargumenter kaldes uden at videregive argumenter, bruges standardparametrene.

Men hvis argumenter sendes, mens funktionen kaldes, ignoreres standardargumenterne.

Arbejde med standardargumenter

Sådan fungerer standardargumenter i C ++

Vi kan forstå, hvordan standardargumenter fungerer fra billedet ovenfor:

  1. Når temp()kaldes, bruges begge standardparametrene af funktionen.
  2. Når temp(6)kaldes, bliver det første argument, 6mens standardværdien bruges til den anden parameter.
  3. Når temp(6, -2.3)kaldes, tilsidesættes begge standardparametre, hvilket resulterer i i = 6og f = -2.3.
  4. Når den temp(3.4)er bestået, opfører funktionen sig på en uønsket måde, fordi det andet argument ikke kan overføres uden at passere det første argument.
    Derfor 3.4er bestået som det første argument. Da det første argument er blevet defineret som intden værdi, der rent faktisk kommer er 3.

Eksempel: Standardargument

 #include using namespace std; // defining the default arguments void display(char = '*', int = 3); int main() ( int count = 5; cout << "No argument passed: "; // *, 3 will be parameters display(); cout << "First argument passed: "; // #, 3 will be parameters display('#'); cout << "Both arguments passed: "; // $, 5 will be parameters display('$', count); return 0; ) void display(char c, int count) ( for(int i = 1; i <= count; ++i) ( cout << c; ) cout << endl; )

Produktion

 Intet argument bestået: *** Første argument bestået: ### Begge argumenter bestået: $$$$$

Sådan fungerer dette program:

  1. display()kaldes uden at give nogen argumenter. I dette tilfælde display()bruger både standardparametrene c = '*'og n = 1.
  2. display('#')kaldes med kun ét argument. I dette tilfælde bliver den første '#'. Den anden standardparameter n = 1bevares.
  3. display('#', count)kaldes med begge argumenter. I dette tilfælde bruges standardargumenter ikke.

Vi kan også definere standardparametrene i selve funktionsdefinitionen. Programmet nedenfor svarer til det ovenstående.

 #include using namespace std; // defining the default arguments void display(char c = '*', int count = 3) ( for(int i = 1; i <= count; ++i) ( cout << c; ) cout << endl; ) int main() ( int count = 5; cout << "No argument passed: "; // *, 3 will be parameters display(); cout << "First argument passed: "; // #, 3 will be parameters display('#'); cout << "Both argument passed: "; // $, 5 will be parameters display('$', count); return 0; )

Ting at huske

  1. Når vi først har angivet en standardværdi for en parameter, skal alle efterfølgende parametre også have standardværdier. For eksempel,
     // Invalid void add(int a, int b = 3, int c, int d); // Invalid void add(int a, int b = 3, int c, int d = 4); // Valid void add(int a, int c, int b = 3, int d = 4);
  2. Hvis vi definerer standardargumenterne i funktionsdefinitionen i stedet for funktionsprototypen, skal funktionen defineres inden funktionsopkaldet.
     // Invalid code int main() ( // function call display(); ) void display(char c = '*', int count = 5) ( // code )

Interessante artikler...