0

在 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;

...

然后我想从我的程序中的任何地方访问surface[0]、surface[1]、surface[2]...。我怎么做?

4

2 回答 2

2

最简单的方法——在头文件中使用

extern Surface surface[SURFACEBMP_COUNT];

然后在 .cpp 文件中声明并初始化它,并随时使用。

于 2013-04-22T11:41:07.917 回答
2

使用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];
于 2013-04-22T11:41:46.940 回答