Parametry domyślne
Domyślny argument lub parametr to wartość wprowadzona do funkcji w momencie deklaracji funkcji. Ta wartość jest przypisywana przez kompilator automatycznie po wywołaniu funkcji. Podczas dowolnego wywołania funkcji, jeśli żadna wartość nie zostanie przekazana jako parametr do funkcji, oznacza to, że wartość domyślna zostanie wykorzystana. W przeciwnym razie wartość domyślna zostanie zastąpiona nową.
Implementacja parametrów domyślnych
Przykład 1
Tutaj zacytujemy przykładowy przykład. Ten przykład będzie zawierać funkcję do obliczenia sumę wartości przekazanych jako parametry przez wywołanie funkcji. Funkcja będzie zawierać cztery zmienne. Po pierwsze, wszystkie są inicjowane jako zero. Wywojemy funkcję w programie głównym, przekazując argumenty do funkcji. Liczba argumentów może się różnić. Miniemy dwa argumenty, wówczas trzy i cztery parametry zostaną przekazane w ostatnim wywołaniu funkcji.
Suma (20, 25, 30, 35);Po przejściu dwóch parametrów te dwa będą przechowywane tylko w dwóch zmiennych; podczas gdy reszta pozostanie zerowa. Podobny przypadek dotyczy wywołania funkcji z trzema parametrami. Ale gdy są cztery argumenty, oznacza to, że wszystkie cztery zmienne będą zawierać wartości, które należy dodać razem.
Zapisz kod, a następnie wykonaj je w terminalu Ubuntu za pomocą kompilatora G ++.
$ g ++ -o def def.CZobaczysz wynikową wartość dla każdego wywołania funkcji.
Przykład 2
Ten przykład dotyczy używania parametrów domyślnych inaczej dla każdego wywołania funkcji, jak wyjaśniono w poprzednim przykładzie. Najpierw zdefiniuj funkcję za pomocą typu return i parametrów domyślnych. Jak wiemy, domyślne parametry są zadeklarowane na początku. Zatwierdzamy więc wartości dla dwóch zmiennych tutaj:
Void wyświetlacz (char = '*', int = 3);Wyświetlacz to nazwa funkcji. Ta domyślna deklaracja parametrów będzie działać, gdy funkcja zostanie wywołana z pustymi nawiasami argumentów lub bez wartości. W programie głównym zadeklarowaliśmy zmienną liczby typu liczb całkowitych, która będzie używana w pętli do iteracji do tego limitu. Po pierwsze, wywołanie funkcji jest wykonywane bez żadnych argumentów. Oznacza to, że zostaną użyte domyślne parametry zadeklarowane dla funkcji. Tak więc parametry tego wywołania funkcji będą * i 3. W drugim wywołaniu funkcji przeszliśmy jeden symbol parametru „#”. Tak więc, w tym przypadku, domyślny parametr drugiej zmiennej, 3, zostanie użyty tak, jak jest. Ale przekazany symbol zostanie zastąpiony przez symbol, który wcześniej zadeklarowaliśmy.
Wyświetlacz ('#');Teraz, zbliżając się do trzeciego wywołania funkcji, tym razem zostaną przekazane dwa argumenty, symbol „$”, a zmienna liczba całkowita jako hrabia, która została ogłoszona jako 5 w programie głównym. Oba parametry domyślne nie będą używane; Nowe argumenty zastąpią te domyślne parametry.
Display („$”, Count);Poza główną funkcją, funkcja wyświetlania, która została po raz pierwszy zadeklarowana, jest teraz wykonywana przez posiadanie pętli, która będzie iterowana do wartości liczby. Każda iteracja wyświetli przekazaną do niej znak. W przeciwnym razie wartość domyślna zostanie wyświetlona.
Teraz wykonaj cały kod całego kodu. Zobaczysz, że za każdym razem, gdy symbol jest wyświetlany w czasie, wartość jest przekazywana jako parametr.
Przykład 3
Ten przykład będzie dotyczył zjawiska przeciążenia funkcji w C ++, a parametry domyślne mają.
Przeciążenie funkcji
Na przykład funkcja z próbką nazwy jest opisana jako:
Int próbka (int a)Te opisane funkcje mają tę samą nazwę, ale mają różne argumenty. Teraz rozważymy program C ++, który opracuje tę koncepcję w parametrach domyślnych.
W głównej funkcji funkcja jest wywoływana z inną liczbą parametrów, z wartościami 2, 3 i 4. Teraz wykonaj kod, zobaczysz, że wystąpił błąd dwuznaczności.
Gdy deklarowane są dwie funkcje tej samej nazwy, konieczne jest posiadanie różnych parametrów. Ale obie funkcje o tej samej nazwie zawierają prawie te same parametry, dwa same i dwa różne. Te same argumenty funkcji pomylą kompilator przy wyborze funkcji wybrać, ponieważ specyfikacje obu funkcji są takie same. Mamy rozwiązanie, aby rozwiązać ten dylemat dwuznaczności w odniesieniu do parametrów domyślnych.
Najpierw zmienimy typ zwrotu obu funkcji. Podobnie parametry będą miały spójność typu danych zmiennej. Na przykład jedna funkcja przyjmie ten sam typ danych dla wszystkich zmiennych, całkowitej lub float.
Float sum (float x, float y, float z, float w);Teraz, w programie głównym, wywołując funkcję, weźmiemy obie wartości zgodnie z typami danych. Pamiętaj jednak, że wszystkie liczby jako argumenty będą postępować zgodnie z typem danych deklarowanej zmiennej. Innymi słowy, wszystkie liczby w pojedynczym wywołaniu funkcji będą miały ten sam typ danych.
Suma (1.0f, 1.5f, 2.5f, 3.5f);Wspominaliśmy „F” w krótkiej formie z każdą wartością zmiennoprzecinkową, aby określić, że jest to wartość pływak.
Po wykonaniu zobaczysz uzyskane wyniki; Pierwsze i trzecie wartości zostaną uzyskane z funkcji z typami danych liczb całkowitych. Podczas gdy drugi zostanie uzyskany z funkcji o typach danych zmiennoprzecinkowych.
Przykład 4
Ten przykład jest funkcją przeciążenia z różnicą liczby parametrów. Wyświetlacz funkcji jest tutaj zadeklarowany, mając nie typ zwrócenia, ponieważ instrukcja Cout wewnątrz funkcji wyświetli wyniki. Jedna funkcja weźmie dwa parametry: int i podwójny typ danych. Druga funkcja przyjmuje pojedynczą zmienną podwójnego typu danych, a trzecia weźmie tylko zmienną typu danych liczb całkowitych.
Dwie zmienne zostaną zadeklarowane w programie głównym. Wartości te zostaną przekazane do funkcji. Wywołanie funkcji dotyczy funkcji określonej w każdej komórce w zależności od liczby parametrów domyślnych.
Wniosek
Parametry domyślne są deklarowane w funkcji w momencie deklaracji funkcji. Użyliśmy niektórych przykładów w C ++ do opracowania deklaracji i procesu parametrów domyślnych w systemie Ubuntu. Podczas nadmiernej funkcji użycie domyślnych parametrów może być sytuacją o problemach z tymi samymi parametrami domyślnymi. Mamy nadzieję, że ten artykuł jest pomocny. Sprawdź inne artykuły z Linux, aby uzyskać więcej wskazówek i samouczków.