C ++ programmeerimise vaikeargumendid (parameetrid)

Selles õpetuses õpime näidete abil C ++ vaikeargumente ja nende töötamist.

C ++ programmeerimisel saame anda funktsiooni parameetrite vaikeväärtused.

Kui vaikeargumentidega funktsiooni kutsutakse argumente edastamata, kasutatakse vaikeparameetreid.

Kui aga funktsiooni kutsumisel antakse argumente, ignoreeritakse vaikeargumente.

Vaikeargumentide töötamine

Kuidas vaikeargumendid toimivad C ++ keeles

Vaikimisi argumentide toimimisest saame aru ülaltoodud pildi järgi:

  1. Kui temp()helistatakse, kasutab funktsioon mõlemat vaikeparameetrit.
  2. Kui temp(6)see kutsutakse, muutub esimene argument, 6samal ajal kui teise parameetri jaoks kasutatakse vaikeväärtust.
  3. Kui temp(6, -2.3)helistatakse, tühistatakse mõlemad vaikeparameetrid, mille tulemuseks on i = 6ja f = -2.3.
  4. Kui see temp(3.4)on edastatud, käitub funktsioon soovimatul viisil, kuna teist argumenti ei saa edastada ilma esimese argumendita.
    Seetõttu 3.4edastatakse esimese argumendina. Kuna esimene argument on määratletud kui int, on tegelikult edastatud väärtus 3.

Näide: Vaikeargument

 #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; )

Väljund

 Ühtegi argumenti pole edastatud: *** Esimene argument on edastatud: ### Mõlemad argumendid on edastatud: $$$$$

See programm töötab nii:

  1. display()kutsutakse argumente esitamata. Sel juhul display()kasutab nii vaikeparameetreid c = '*'kui ka n = 1.
  2. display('#')kutsutakse ainult ühe argumendiga. Sel juhul saab esimene '#'. Teine vaikeparameeter n = 1säilib.
  3. display('#', count)nimetatakse mõlema argumendiga. Sellisel juhul vaikeargumente ei kasutata.

Vaikeparameetrid saame määratleda ka funktsiooni määratluses endas. Allpool olev programm on samaväärne ülaltooduga.

 #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; )

Asjad, mida meeles pidada

  1. Kui oleme andnud parameetri vaikeväärtuse, peavad kõigil järgnevatel parameetritel olema ka vaikeväärtused. Näiteks,
     // 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. Kui funktsiooni prototüübi asemel määratleme vaikimisi argumendid funktsiooni definitsioonis, siis tuleb funktsioon enne funktsiooni väljakutset defineerida.
     // Invalid code int main() ( // function call display(); ) void display(char c = '*', int count = 5) ( // code )

Huvitavad Artiklid...