Используйте ВСЕ охранные файлы во всех файлах заголовка. Поскольку вы используете Visual Studio, вы можете использовать #pragma once
в качестве первого определения препроцессора во всех ваших заголовках.
Однако я предлагаю использовать классический подход:
#ifndef CLASS_NAME_H_
#define CLASS_NAME_H_
// Header code here
#endif //CLASS_NAME_H_
Second прочитайте о forward declaration и примените его.