我有点困惑为什么会这样,而且我确定如果我用C ++编程我应该知道这是一个基本的事情,但问题是:
我有一个“Windows.cpp”,顶部包含
#include <windows.h>
#include "Game.h"
#include "Mouse.h"
#include "Screen.h"
...
在我的Screen.h中我有以下显然需要来自windows.h的信息,因为使用 DWORD :
#pragma once
#include <windows.h>
class ScreenServer;
class ScreenClient
{
public:
ScreenClient( const ScreenServer &server );
DWORD GetScreenHeight();
DWORD GetScreenWidth();
...
问题是,为什么我必须在Screen.h中#include windows.h,当我的“Windows.cpp”在“Screen.h”被包含之前已经包含它时?
答案 0 :(得分:4)
简短回答:
因为不#include <windows.h>
的其他文件可能包含Screen.h
。
再长一点:
通常,您应该始终在需要的位置包含所需的标头,而不是依赖它们包含在其他位置。尽可能使用前向声明,但如果需要完整类型,请包含标题。