For this we use "include guards"
if you look in the agk.h file you will see the code is wrapped in the following compiler directive
#ifndef _H_AGK_
#define _H_AGK_
// code in here only loads once
#endif
This is a compiler safe include guard, ie: will work in all compilers
when you create a header in VS it adds
This does exactly the same thing but is not compatible with all compilers, if you only use VS then this is good enough
using either ensures that the header file is only compiled into the project once, without these guards as Dark Raven said you would get a long list of redeclaration errors.