Should C++ function default argument values be specified in headers or .cpp source files?

后端 未结 3 1291
渐次进展
渐次进展 2020-12-23 18:58

I am kind of new to C++. I am having trouble setting up my headers. This is from functions.h

extern void apply_surface(int, int, SDL_Surface *, SDL_Surface *         


        
相关标签:
3条回答
  • 2020-12-23 19:12

    The default parameter value should be in the function declaration (functions.h), rather than in the function definition (function.cpp).

    0 讨论(0)
  • 2020-12-23 19:25

    You make the declaration (i.e. in the header file - functions.h) contain the optional parameter, not the definition (functions.cpp).

    //functions.h
    extern void apply_surface(int, int, SDL_Surface *, SDL_Surface *,SDL_Rect * clip = NULL);
    
    //functions.cpp
    void apply_surface(int x, int y, SDL_Surface * source, SDL_Surface *
    destination,SDL_Rect *clip /*= NULL*/)
    {
        ...
    }
    
    0 讨论(0)
  • 2020-12-23 19:30

    Use:

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

    (note I can't check it here; don't have a compiler nearby).

    0 讨论(0)
提交回复
热议问题