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