Why does code like thiscause linker error "multiple definition of 'Foo::sInt' when foo.h is included in several source files? I was under the impression that the purpose of header guards was precisely to prevent such an error.Code:#ifndef _foo_h
#define _foo_h
class Foo
{
public:
static int sInt;
};
int Foo::sInt = 1;
#endif