Funkcje 
Argumenty domniemane funkcji

Deklarując funkcję, możemy przypisać argumentom na końcu listy ich wartości domyślne.

void wypisz(int t[], int dlugosc, char separator=',');
 
void wypisz(int t[], int dlugosc, char separator)
{
  ....
  // ciało funkcji
}

Jeśli definicja i deklaracja są rozdzielone, to wartości argumentów domniemanych mogą się pojawić tylko w deklaracji. W przeciwnym razie zostanie zgłoszony błąd kompilacji.

Jeśli deklaracja jest połączona z definicją, to argumenty domniemane mogą się pojawić również w definicji funkcji.

Efekt użycia argumentów domniemanych jest taki, jak zdefiniowanie przeładowanych funkcji z różną ilością argumentów. W przykładzie powyżej będą to

void wypisz(int t[], int dlugosc, char separator);
void wypisz(int t[], int dlugosc);

Definicje dla tych wersji kompilator uzupełni sam, na podstawie jednej podanej definicji i wartości domyślnych argumentów

Uwaga:
  • Jeśli w deklaracji funkcji podaliśmy wartość domyślną dla jakiegoś argumentu, to trzeba ją podać dla wszystkich kolejnych argumentów na liście
  • Jeśli przy wywołaniu funkcji zdecydujemy się pominąć jakiś argument aktualny, który ma podaną wartość domyślną, to musimy pominąć wszystkie kolejne argumenty aktualne i zdać się na ich wartości domyślne

Przykład - argumenty domniemane funkcji

Materiały przeznaczone wyłącznie dla studentów
Instytutu Informatyki i Matematyki Komputerowej UJ
Daniel Wilczak