Question

I have a .h file which contains several class definitions. I'd like to use C++'s include guards in this file; however, I was wondering which way of using the include guards is considered proper/correct?

One guard protecting everything

#ifndef FOO_BAR
#define FOO_BAR

class Foo
{
};

class Bar
{      
};

#endif

or multiple separate guards.

#ifndef FOO
#define FOO

class Foo
{
};

#endif

#ifndef BAR
#define BAR

class Bar
{      
};

#endif
Was it helpful?

Solution

They are include guards, preventing double inclusion of files. So they should be defined once per file, not per class or function or whatever.

OTHER TIPS

Have you considered to use #pragma once ? Most modern compilers support it.

Is #pragma once a safe include guard?

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top