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:
- Gdy
temp()jest wywoływana, funkcja używa obu parametrów domyślnych. - Gdy
temp(6)jest wywoływana, pierwszy argument staje się,6podczas gdy wartość domyślna jest używana dla drugiego parametru. - Gdy
temp(6, -2.3)jest wywoływana, oba parametry domyślne są zastępowane, w wyniku czegoi = 6if = -2.3. - 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.
Dlatego3.4jest przekazywany jako pierwszy argument. Ponieważ pierwszy argument został zdefiniowany jakoint, faktycznie przekazywana wartość to3.
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:
display()jest wywoływana bez przekazywania żadnych argumentów. W takim przypadkudisplay()używa zarówno domyślnych parametrów, jakc = '*'in = 1.display('#')wywoływana jest tylko z jednym argumentem. W tym przypadku pierwszy staje się'#'. Drugi parametr domyślnyn = 1zostaje zachowany.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
- 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); - 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 )








