我必须在Character
类中创建一个Game
对象。两者都包括SDL2。
Game
类使用SDL代表SDL_BlitSurface
和SDL_UpdateWindowSurface
,Character
类使用SDL代表SDL_Surface
。
有没有办法避免此包含中的冗余?编译器只包含一次SDL2吗?
答案 0 :(得分:0)
编译器只包含一次SDL2吗?
如果包含的标题包含 include guard ,则为是。
如果标题包含任何定义,则必须包含一个包含保护,否则多次包含它会使程序生成错误。
我没有浏览SDL的所有标题,但我认为他们每个人都使用包含守卫。
我在Game.h和Character.h中都包含了“SDL.h”。对于源健康来说这是一个问题吗?
我不知道源健康是什么。如果Game.h
取决于SDL.h
中的定义/声明,则必须包含SDL.h
。如果Character.h
取决于SDL.h
中的定义/声明,那么它也必须包含SDL.h
。没有什么不妥。这很典型。
答案 1 :(得分:0)
,您需要添加以下代码:
#ifndef TEST_H
#define TEST_H
// your code
#endif
或
#pragma once
这可以帮助您避免多次包含课程!