包括在C ++,windows中调用它们的顺序

时间:2013-05-12 15:25:17

标签: c++ windows

我有点困惑为什么会这样,而且我确定如果我用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”被包含之前已经包含它时?

1 个答案:

答案 0 :(得分:4)

简短回答:

因为不#include <windows.h>的其他文件可能包含Screen.h

再长一点:

通常,您应该始终在需要的位置包含所需的标头,而不是依赖它们包含在其他位置。尽可能使用前向声明,但如果需要完整类型,请包含标题。