Зачем вам нужен циклический #include
такой? Если вам нужно, чтобы компилятор знал, что класс существует (так что это может быть параметр и так далее), просто объявите его следующим образом:
class A;
Не циклически включать файлы. Даже с охраной, они оба будут включены только один раз, конечно, но тогда вы все равно столкнетесь с упоминанием A
до того, как компилятор доберется до его определения, или упоминанием B
перед компилятором добирается до своего определения.