包含文件将自身包含在警卫中
Include file includes itself with guards
我有两个头文件,animation.h
和 hero.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 等,所以这可能是一个非常小的错误。
感谢您的帮助
你应该把头球后卫放在第一位。
在 gcc
和 MSC
你也可以使用
#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
我有两个头文件,animation.h
和 hero.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 等,所以这可能是一个非常小的错误。
感谢您的帮助
你应该把头球后卫放在第一位。
在 gcc
和 MSC
你也可以使用
#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