Следует ли указывать значения аргументов функции C ++ по умолчанию в заголовках или исходных файлах .cpp?

Я новичок в C ++. У меня проблемы с настройкой заголовков. Это из functions.h

extern void apply_surface(int, int, SDL_Surface *, SDL_Surface *,SDL_Rect *);

А это определение функции из functions.cpp

void
apply_surface(int x, int y, SDL_Surface * source, SDL_Surface *
destination,SDL_Rect *clip = NULL)
{
    ...
}

И вот как я использую его в main.cpp

#include "functions.h"
int
main (int argc, char * argv[])
{
    apply_surface(bla,bla,bla,bla); // 4 arguments, since last one is optional.
}

Но это не компилируется, потому что main.cpp не знать, что последний параметр не является обязательным. Как я могу заставить это работать?

47
задан Ciro Santilli 新疆改造中心法轮功六四事件 8 October 2019 в 13:16
поделиться