如何拥有其他.cpp文件进入全球结构? [重复](How to have access to g

2019-08-31 18:12发布

这个问题已经在这里有一个答案:

  • 使用类/结构/联合在多个cpp文件C ++ 5个回答

在Surface.h我有:

struct Surface{

    bool isAllowedOnTile[TILETYPE_COUNT];

    float moveBecomes;  // When this is 0, it is ignored
    float moveChange;   // Is ignored if moveBecomes is non-zero
    float affChange[ELEMENT_COUNT];

    ID2D1BitmapBrush* pBrush;
};

在某些时候,我需要初始化倍数表面是这样的:

Surface surface[SURFACEBMP_COUNT];

surface[0].moveBecomes = 123;
surface[0].moveChange = 0;
surface[0].affChange[0]= 2.0f;

...

然后,我希望有机会浮出水面[0],表面[1],表面[2] ...从我的程序的任何地方。 我怎么做?

Answer 1:

使用extern ,使surface全球。

file.h

#ifndef FILE_H
#define FILE_H

...

extern Surface surface[SURFACEBMP_COUNT];

#endif

它的头文件,它应该包括它在你需要surface

file.cpp

#include "file.h"

Surface surface[SURFACEBMP_COUNT];


Answer 2:

最简单的办法 - 在头文件中使用

extern Surface surface[SURFACEBMP_COUNT];

然后声明,只要你想在.cpp文件,并使用初始化。



文章来源: How to have access to global struct from another .cpp file? [duplicate]