包含文件将自身包含在警卫中

Include file includes itself with guards

我有两个头文件,animation.hhero.h, 这是 animation.h:

的代码
#include <SFML/Graphics.hpp>
#include <iostream>
#include "hero.h"

#ifndef ANIMATION
#define ANIMATION

//Class

#endif

对于hero.h

#include <SFML/Graphics.hpp>
#include <iostream>
#include "animation.h"

#ifndef HERO
#define HERO

//Class

#endif

我收到错误消息 #include file "" includes itself 即使在使用 include guards 时也是如此。 我不熟悉使用 include guards 等,所以这可能是一个非常小的错误。

感谢您的帮助

你应该把头球后卫放在第一位。

gccMSC 你也可以使用

#pragma once

相反。可能也在其他更现代的编译器上。简单地将其放在包含的顶部,而不是 #ifdef....

animation.h

#ifndef ANIMATION
#define ANIMATION

#include <SFML/Graphics.hpp>
#include <iostream>
#include "hero.h"

//Class

#endif

hero.h

#ifndef HERO
#define HERO

#include <SFML/Graphics.hpp>
#include <iostream>
#include "animation.h"

//Class

#endif

animation.h

#pragma once

#include <SFML/Graphics.hpp>
#include <iostream>
#include "hero.h"

//Class