Programowanie w języku C ++ Domyślne argumenty (parametry)

W tym samouczku nauczymy się domyślnych argumentów C ++ i ich pracy na przykładach.

W programowaniu w C ++ możemy podać domyślne wartości parametrów funkcji.

Jeśli wywoływana jest funkcja z domyślnymi argumentami bez przekazywania argumentów, używane są domyślne parametry.

Jeśli jednak argumenty są przekazywane podczas wywoływania funkcji, domyślne argumenty są ignorowane.

Praca z domyślnymi argumentami

Jak działają domyślne argumenty w C ++

Możemy zrozumieć działanie domyślnych argumentów z powyższego obrazu:

  1. Gdy temp()jest wywoływana, funkcja używa obu parametrów domyślnych.
  2. Gdy temp(6)jest wywoływana, pierwszy argument staje się, 6podczas gdy wartość domyślna jest używana dla drugiego parametru.
  3. Gdy temp(6, -2.3)jest wywoływana, oba parametry domyślne są zastępowane, w wyniku czego i = 6i f = -2.3.
  4. Gdy temp(3.4)jest przekazywane, funkcja zachowuje się w niepożądany sposób, ponieważ nie można przekazać drugiego argumentu bez przekazania pierwszego argumentu.
    Dlatego 3.4jest przekazywany jako pierwszy argument. Ponieważ pierwszy argument został zdefiniowany jako int, faktycznie przekazywana wartość to 3.

Przykład: domyślny argument

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

Wynik

 Nie przekazano argumentu: *** Przekazano pierwszy argument: ### Przekazano oba argumenty: $$$$$

Oto jak działa ten program:

  1. display()jest wywoływana bez przekazywania żadnych argumentów. W takim przypadku display()używa zarówno domyślnych parametrów, jak c = '*'i n = 1.
  2. display('#')wywoływana jest tylko z jednym argumentem. W tym przypadku pierwszy staje się '#'. Drugi parametr domyślny n = 1zostaje zachowany.
  3. display('#', count)jest wywoływana z oboma argumentami. W takim przypadku argumenty domyślne nie są używane.

Możemy również zdefiniować parametry domyślne w samej definicji funkcji. Poniższy program jest odpowiednikiem powyższego.

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

Rzeczy do zapamiętania

  1. Gdy podamy wartość domyślną parametru, wszystkie kolejne parametry również muszą mieć wartości domyślne. Na przykład,
     // 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. Jeśli definiujemy domyślne argumenty w definicji funkcji zamiast w prototypie funkcji, to funkcja musi być zdefiniowana przed wywołaniem funkcji.
     // Invalid code int main() ( // function call display(); ) void display(char c = '*', int count = 5) ( // code )

Interesujące artykuły...