Domyślna wartość parametru funkcji w C++

1

int Add (int a, int b = 3);
int Add (int a, int b)
{

}

2

int Add (int a, int b);
int Add (int a, int b = 3)
{

}

Oba działają; jaki jest standardowy sposób i dlaczego?

1 odpowiedź

Jeśli umieścisz deklarację w pliku nagłówka, a definicję w osobnym pliku .cpp i zawrzesz nagłówek z innego pliku .cpp, zobaczysz różnicę.

W szczególności załóżmy:

lib.h
int Add(int a, int b);
lib.cpp
int Add(int a, int b = 3) {
   ...
}
test.cpp
#zawiera "lib.h"

int main() {
    Add(4);
}

Kompilacja pliku test.cpp zakończy się niepowodzeniem z błędem.

Z tego powodu domyślna definicja parametru jest zwykle określona w deklaracji funkcji:

lib.h
int Add(int a, int b = 3);

Twoja odpowiedź

Zaloguj się aby odpowiedzieć.

Operiada

Operiada to polskojęzyczne forum informatyczne działające na zasadzie pytań i odpowiedzi.

Obserwowane tagi

Zaloguj się aby obserwować tagi.