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] ....我该怎么做?
答案 0 :(得分:2)
最简单的方法 - 在头文件中使用
extern Surface surface[SURFACEBMP_COUNT];
然后在.cpp文件中声明并初始化它,并随时使用。
答案 1 :(得分: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];